Я разрабатываю приложение .NET WinForms, которое полагается на user.config для хранения различных полезных параметров, таких как URL-адреса веб-служб интрасети. Мы хотели бы сделать возможным импортировать пользовательские начальные настройки как часть установки. Вариант использования для этого состоит в том, что в компании есть 100 машин, на которых они хотят установить программное обеспечение, и все они должны иметь ссылку на веб-службу интрасети, о которой идет речь, поэтому ее не нужно настраивать вручную на всех машинах.
В настоящее время мы используем проект установки VS2008 для создания пакета установки.
Наша идея до сих пор заключалась в том, чтобы позволить установщику создать пользовательский исходный файл .config с информацией (из шаблона), а затем поместить его вместо стандартного, установленного проектом установки.
Однако я не вижу способа сделать это, кроме этих:
- Жестко введите исполняемое имя в действие пользовательского установщика (исходя из System.Configuration.Install.Installer), чтобы использовать класс ConfigurationManager для определения пути файла .config. Это потребует внесения вручную изменений в установщик, если имя исполняемого файла изменится.
- Сгруппируйте наши собственные классы конфигурации или иерархию файлов/папок, чтобы сохранить настройки. Это в основном лишает нас преимуществ механизма изоляции (что также является препятствием здесь), который .NET обеспечивает, если я правильно понимаю.
Кто-нибудь знает о каких-либо альтернативах или о способах сделать эти два приемлемых?
Я боюсь, что ответ может быть "не делай этого, он побеждает дух механизма, сворачивает свой механизм импорта собственных настроек".