У меня есть программа, которую я собираюсь развернуть через установщик Windows. Программа выводит файлы в каталог, указанный в файле app.config.
Можно ли изменить значение файла конфигурации на путь, выбранный во время установки?
Так что процесс будет следующим.
- Пользователь запускает установщик Windows
- Пользователь выбирает путь для установки программы
- Выходная переменная в app.config изменена на место установки
- Пользователь может затем отредактировать файл конфигурации, чтобы изменить выходную переменную, если он хочет изменить путь вывода.
Обновление: Хорошо, теперь я знаю, как создать пользовательский процесс установки по этой ссылке:
Настройка параметров приложения App.config во время установки MSI
Это нормально, если вы хотите просто использовать стандартный набор элементов управления, но я бы хотел, чтобы средство выбора файлов им позволяло выбрать путь вывода, как я могу это сделать?
Хорошо, я понял, что мне нужно сделать ... Вот ответ ...
Добавьте класс установщика в проект, который вы хотите установить, в соответствии с инструкциями в ссылке.
Затем переопределите метод установки в этом классе следующим образом, чтобы прочитать путь, который этот пользователь вводит как каталог установки.
public override void Install(System.Collections.IDictionary stateSaver)
{
base.Install(stateSaver);
string targetDirectory = Context.Parameters["targetdir"];
string exePath = string.Format("{0}BarcodeScanner.exe", targetDirectory);
Configuration config = ConfigurationManager.OpenExeConfiguration(exePath);
config.AppSettings.Settings["ILPrintExportPath"].Value = targetDirectory;
config.Save();
}
Затем следуйте другим этапам в приведенной выше ссылке:)
Как сказал Джо, мне нужно будет либо убедиться, что пользователи запускают приложение от имени администратора, либо устанавливать вне каталога программных файлов, так что это не идеальное решение, но оно делает то, что мне нужно.