ASP.NET Web.Debug 和 Web.Release 文件转换
ASP.NET Web.Debug and Web.Release file transformations
首先我知道有几页关于这个问题,例如Web.Config Debug/Release, Web.config Transformation Syntax now generalized for any XML configuration file and Web.config File Transformations。但其中大部分已经过时,并且没有明确提及所有三个文件: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 运行中的选择调试或发布自动使用并发布对话框。是真的吗?
2) 在移动到 Web.Debug.config 和 Web.Release.config 之后,我是否应该从 Web.config 中删除这些设置?
3) VS 中发布对话框的配置字段中的测试选择是什么?
如有任何帮助,我们将不胜感激。
我建议阅读 web.config 转换工作原理的概述:
https://blog.elmah.io/web-config-transformations-the-definitive-syntax-guide/
通常,Web.*.config 文件会根据 Visual Studio 中选择的发布配置对 Web.config 文件进行更改。例如,如果您想要 update/replace 调试发布中的值,您的 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
首先我知道有几页关于这个问题,例如Web.Config Debug/Release, Web.config Transformation Syntax now generalized for any XML configuration file and Web.config File Transformations。但其中大部分已经过时,并且没有明确提及所有三个文件: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 运行中的选择调试或发布自动使用并发布对话框。是真的吗?
2) 在移动到 Web.Debug.config 和 Web.Release.config 之后,我是否应该从 Web.config 中删除这些设置?
3) VS 中发布对话框的配置字段中的测试选择是什么?
如有任何帮助,我们将不胜感激。
我建议阅读 web.config 转换工作原理的概述:
https://blog.elmah.io/web-config-transformations-the-definitive-syntax-guide/
通常,Web.*.config 文件会根据 Visual Studio 中选择的发布配置对 Web.config 文件进行更改。例如,如果您想要 update/replace 调试发布中的值,您的 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