Другой app.config для приложения ClickOnce - PullRequest
3 голосов
/ 13 января 2010

У нас развернуто приложение ClickOnce, развернутое в 2 разных местах. Для обоих нужны разные настройки в app.config (кроме среды devel)

В настоящий момент процесс создания этих установок заключается в том, чтобы кто-то вручную изменил эти настройки из Visual Studio и перестроил их. Это, конечно, боль.

Некоторые предлагали создать в нашем решении дополнительный проект, который в основном содержит только app.settings и просто запустил основную форму в другом проекте.

Как люди справляются с этим?

(я ищу конкретные решения / примеры, целью может быть "использовать автоматизированную систему сборки", но она не очень конкретна ..)

Ответы [ 3 ]

0 голосов
/ 14 января 2010

Я думаю, что есть два решения:

  • Как вы сказали, создайте несколько проектов. Проект в основном представляет правильный app.config, правильную конфигурацию депломента и т. Д. В противном случае он просто делегирует поток кода «реальному» проекту.
  • Другая возможность - создать несколько файлов app.config. Например, app-develop.config => Develop-Version, app-produk.config => Productive-Version, app-other-thing.config ... Теперь вы добавили дополнительную задачу в файл MSBuild (.csproj) который копирует правильное приложение - *. config в файл app.config. Мы делаем что-то подобное с нашей конфигурацией журнала, и она отлично работает.
0 голосов
/ 01 февраля 2010

Я написал о нашем решении , которое хорошо работает.

По сути, у нас есть отдельный файл, который содержит всю информацию о конфигурации для каждой среды (т. Е. Различные места развертывания), процесс сборки использует эту информацию для установки значений в файле конфигурации / локальной базе данных.

Решение не влияет на повседневную деятельность разработчиков и работает с развертываниями ClickOnce (т. Е. Файл конфигурации обновляется до подписания манифестов).

Дайте мне знать, что вы думаете о решении ...хорошо или плохо: -)

0 голосов
/ 13 января 2010

Я бы переместил эти настройки из app.config. У нас были многочисленные проблемы с поддержанием значений параметров конфигурации во время обновлений ClickOnce, и я больше не доверяю этому. Я перенесу эти настройки в облегченную базу данных, такую ​​как SqlLite или SqlCe, и распространю их вместе с вашим приложением. Тогда поддержание настроек - это всего лишь вопрос заполнения различных значений в базе данных.

...