C # мы можем иметь несколько файлов .config для проекта? - PullRequest
3 голосов
/ 01 мая 2010

Если у нас может быть более одного файла .config, мы можем поделиться одним файлом конфигурации с другими проектами и поместить частную конфигурацию в другой. Visual Studio 2008 будет в замешательстве?

Ответы [ 6 ]

8 голосов
/ 01 мая 2010

Нет, за исключением узла <appSettings>, который имеет специальный атрибут file=, который работает "кумулятивным" образом, все разделы конфигурации являются делами единичного выстрела - он у вас есть, и у вас точно один из них - или у тебя ничего нет.

<appSettings file="common.appsettings.config">
   <add key="private1" value="value1" />
</appSettings>

Это будет считывать содержимое файла common.appsettings.config, и все, что не перезаписывается явным значением в вашей собственной конфигурации, используется из этого внешнего файла конфигурации.

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

2 голосов
/ 01 мая 2010

Visual Studio 2010 поддерживает несколько файлов .config.Это одна из особенностей новой системы упаковки и развертывания веб-приложений.Теперь мы можем создавать отдельные файлы web.config для каждой конфигурации, которую мы имеем для приложения.Но в 2008 году поддержка мультиконфигурационных файлов не поддерживается, вы можете обойти это, добавив два конфигурационных файла и переименовав их во время сборки

Пример:

private.config public.config

при событии pre-msbuild объединить эти два файла

переименовать объединенный файл, это должен быть web.config или app.config

Надеюсь, это поможет ...

s

0 голосов
/ 22 апреля 2012

Каждый раздел конфигурации может быть помещен во внешний файл, и на него можно ссылаться из главного app.config / web.config через атрибут configSource. Однако вам придется написать собственные обработчики разделов для каждого настраиваемого раздела / внешнего файла конфигурации, который вы хотите написать, что может быть немного утомительным. Кроме того, раздел appSettings можно выводить и ссылаться через тот же механизм.

0 голосов
/ 01 мая 2010

Теоретически у вас должно быть несколько файлов .config, некоторые из которых будут использоваться несколькими проектами.

Один из способов сделать это - использовать некую утилиту, способную объединить два XML-файла с одинаковой базовой структурой. Затем вы можете добавить предварительно собранное или постстроенное событие, которое вызывает этот инструмент. Затем инструмент объединит несколько файлов .config и выведет полученный файл .config в целевой каталог проекта.

Если вы не хотите полагаться на какие-либо внешние инструменты и делать это исключительно в Visual Studio, вы можете не найти практического решения.

0 голосов
/ 01 мая 2010

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

0 голосов
/ 01 мая 2010

Вы можете иметь несколько веб-конфигураций для каждого каталога, хотя только один обработчик раздела конфигурации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...