Вот как я только что сделал нечто подобное:
Создайте класс установщика в отдельном проекте и переопределите метод Installer -
[RunInstaller(true)]
public partial class CustomInstaller : System.Configuration.Install.Installer
{
public override void Install(System.Collections.IDictionary stateSaver)
{
base.Install(stateSaver);
string myVar = Context.Parameters["ParamName"];
........
}
}
Создайте этот проект и добавьте полученный результатdll к установщику с помощью настраиваемого действия («Редактор» -> «Настраиваемые действия», щелкните правой кнопкой мыши «Установить и добавить настраиваемое действие»).
В свойствах настраиваемого действия установите значение элемента CustomActionData:
/ ParamName = [REVITINSTALLYEAR]
Затем в классе CustomInstaller во время выполнения myVar будет равно значению в REVINTINSTALLYEAR, и вы можете использовать его для установки значения DefaultLocation в методе Install.
Я нашел эту статью , а также Свойство данных настраиваемых действий , полезное при разработке способа получения значения из диалогового окна и его использования.