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