ASP. NET Преобразования файлов Web.Debug и Web.Release - PullRequest
0 голосов
/ 06 мая 2020

Прежде всего, я знаю, что есть несколько страниц об этой проблеме, например Web.Config Debug / Release , Синтаксис преобразования Web.config теперь обобщен для любого XML файла конфигурации и Преобразования файла Web.config . Но большинство из них устарели и не упоминают четко обо всех трех файлах: Web.config, Web.Debug.config, Web.Release.config.

Итак, предположим, что у меня есть следующие настройки для Web.config:

Web.config:

<appSettings>
    <add key="ClientId" value="xxxxx"/>
    <add key="ClientSecret" value="xxxxx"/>
</appSettings>

И я хочу использовать эти настройки при отладке и выпуске следующими способами:

Web.Debug.config:

<appSettings>
    <add key="ClientId" value="ddddd"/>
    <add key="ClientSecret" value="ddddd"/>
</appSettings>

Web.Release.config:

<appSettings>
    <add key="ClientId" value="rrrrr"/>
    <add key="ClientSecret" value="rrrrr"/>
</appSettings>

1) Каковы процедуры для точного выполнения этого? Я думаю, что при отладке и публикации эти параметры используются автоматически в соответствии с моим выбором «Отладка» или «Выпуск» в Visual Studio run и publi sh диалоговом окне. Это правда?

2) Следует ли мне удалить эти настройки из Web.config после перехода к Web.Debug.config и Web.Release.config?

3) Что означает выбор теста в поле «Конфигурация» диалогового окна Publi sh в VS?

Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 06 мая 2020

Я бы рекомендовал прочитать обзор того, как работает преобразование web.config:

https://blog.elmah.io/web-config-transformations-the-definitive-syntax-guide/

В общем, файлы конфигурации Web. *. изменения в файле Web.config в зависимости от выбранной конфигурации publi sh в Visual Studio. Например, если вы хотите обновить / заменить значение в отладочной публикации sh, ваш файл Web.Debug.config должен выглядеть так:

<configuration xmlns:xdt="...">
  <appSettings>
    <add key"ClientId" value="ddddd" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
    <add key"ClientSecret" value="ddddd" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
  </appSettings>
</configuration>

Вот текущая документация Microsoft о том, как они работают : https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/transform-webconfig?view=aspnetcore-3.1

...