我的web.config文件中存储了一个值,我希望在网站发布时更改该值。我想将它从TEST更改为LIVE。
<appSettings>
<add key="RequestMode" value="TEST" />
// other keys here
</appSettings>
这是否可以使用web.config转换语法?如果是这样,怎么样?
感谢。
答案 0 :(得分:45)
是的,这可以通过转换语法实现。这种转变应该可以解决问题:
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<appSettings>
<add key="RequestMode" value="LIVE" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
</appSettings>
</configuration>
答案 1 :(得分:1)
使用Visual Studio 2010可以开箱即用。唯一需要注意的是,当您使用其中的“发布”工具时,此过程将在Visual Studio中运行。您将无法从MSBuild获得此转换(这会妨碍自动构建)。
<appSettings xdt:Transform="Replace"> <add key="ProdKeyA" value="ProdValA"/> <add key="ProdKeyB" value="ProdValB"/> <add key="ProdKeyC" value="ProdValC"/></appSettings>
来源:Web.Config Transformations VS 2010
还要确保您的Web.Config.XXXX转换文件与您的构建定义匹配。例如,默认情况下支持调试和发布,因此您需要使用Web.Config.Release在发布模式下发布时调整Web.Config。
答案 2 :(得分:0)
我在http://mundrisoft.com/tech-bytes/web-config-transformation-for-project-deployment/找到了以下代码,该代码正常运行:
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<connectionStrings>
<add name="MyDB"
connectionString="ReleaseSQLServer"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>
</configuration
答案 3 :(得分:0)
您还可以使用CTT工具执行网络转换CTT Website 然后,您可以在发布文件之后,在部署之前使用powershell转换Web配置(保留转换文件),然后在部署期间只更改名称