2008-09-16 5 views
11

Я разрабатываю приложение .NET WinForms, которое полагается на user.config для хранения различных полезных параметров, таких как URL-адреса веб-служб интрасети. Мы хотели бы сделать возможным импортировать пользовательские начальные настройки как часть установки. Вариант использования для этого заключается в том, что в компании есть 100 машин, на которых они хотят установить программное обеспечение, и все они должны иметь ссылку на веб-службу интрасети, о которой идет речь, поэтому ее не нужно настраивать вручную на всех машинах.Инициализация user.config или app.exe.config во время установки

В настоящее время мы используем проект установки VS2008 для создания пакета установки.

Наша идея до сих пор заключалась в том, чтобы позволить установщику создать пользовательский исходный файл .config с информацией (из шаблона), а затем поместить его вместо стандартного, установленного проектом установки.

Однако, я не могу видеть способ сделать это, кроме этих немногих:

  1. жестко закодировать имя исполняемого в действие пользовательского установщика (вытекающие из System.Configuration.Install.Installer), для того, для использования класса ConfigurationManager для определения пути файла .config. Для изменения исполняемого файла потребуются ручные изменения установщика.
  2. Сгруппируйте наши собственные классы конфигурации или иерархию файлов/папок, чтобы сохранить настройки. Это в основном лишает нас преимуществ механизма изоляции (что также является препятствием здесь), которое .NET обеспечивает, если я правильно понимаю.

Кто-нибудь знает о каких-либо альтернативах или о способах сделать вышеуказанные два приемлемых?

Я боюсь, что ответ может быть «не делайте этого, он побеждает дух механизма, рулон вашего механизма импорта настроек».

ответ

1

Я знаю, что это не тот ответ, который вы ищете, но вы должны выбрать более «серьезного» установщика. Мы используем Advanced Installer, и это взрыв, все, что вы можете придумать.

+0

.net так xcopy, что «серьезные» установщики кажутся отходами. Мы писали наш собственный скриптовый установщик XML примерно через два дня, и он делает все, что нам нужно, плюс мы можем легко его расширить. – Bill 2008-10-02 18:16:19

0

Если для файла конфигурации можно указать по крайней мере одну настройку, вы можете использовать это, чтобы указать путь к базе данных или веб-службе или сетевому файлу, где могут быть сохранены все пользовательские настройки конфигурации. Используя System.Configuration.ConfigurationManager.OpenExeConfiguration(), вы можете затем обновить конфигурационный файл из этого места либо в первом запуске, либо при каждом запуске приложения.

3

Если вы создадите это приложение для более крупных компаний, тогда вы должны взглянуть на Group Policy. К сожалению, это вернет ваше приложение в золотой век реестра. Я понимаю, что это будет огромным изменением в вашей программе, но это путь к этому.

Однако, если URL-адрес веб-службы - единственное, вам нужно настроить этот способ, тогда объект групповой политики может быть излишним. В этом случае я бы закодировал имя исполняемого файла.

 Смежные вопросы

  • Нет связанных вопросов^_^