Я знаю это, я s слишком старый и, вероятно, даже не относится к .NET Core, а для тех, кто приходит из Google и использует файлы конфигурации .NET .NET. Вот что я обычно делаю ...
Я использую configSources
, чтобы выполнить все настройки конфигурации из web.config
. Это позволяет конкретной конфигурации раздела в другой файл, обеспечивая относительное местоположение, например, вот как вы бы объявить в разделе конфигурации в configSource
(в корневом файле web.config
) ...
<configuration>
<log4net configSource="Config\debug\log4net.config" />
<appSettings configSource="config\debug\settings.config" />
<connectionStrings configSource="config\debug\connections.config" />
...
</configuration>
Вы можете назовите эти файлы так, как вы хотите, просто убедитесь, что указанный путь и файлы существуют в решении. Вот что файл settings.config выглядит ...
<?xml version="1.0"?>
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="foo" value="bar" />
</appSettings>
Теперь относительный путь относительно корня проекта ...
На картинке выше вы можете видеть, что я предоставили два разных пути для разных сред развертывания, потому что, очевидно, мои строки и настройки для конвейера различны в производстве.
Затем вы можете использовать преобразование конфигурации, так что приложение может использовать правильные конфигурационные файлы, будь то в отладочной или выпуске режиме ...
Это то, что файл Web.Debug.config
выглядит .. .
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<log4net configSource="Config\debug\log4net.config" xdt:Transform="Replace" />
<appSettings configSource="config\debug\settings.config" xdt:Transform="Replace" />
<connectionStrings configSource="config\debug\connections.config" xdt:Transform="Replace" />
</configuration>
Релиз один почти такой же ...замените пути, предоставленные атрибутам configSource. И это в значительной степени. Существуют и другие элементы web.config, которые поддерживают настройки configSource, такие как многие из дочерних элементов system.serviceModel
.
Проверьте это: http://stackoverflow.com/questions/11363121/connectionstring-management-for-many-projects-on-one-server-should-i-make-my-ow/11363291#11363291 –