在Visual Studio 2013的发布管理的构建过程中,从web.config中删除密钥的推荐方法是什么?
使用web.config转换,或者为web.config中的整行添加一个标记(而不是使用标记作为值)?
Web.config转换:
<connectionStrings>
<add name="myConnectionString" connectionString=""
xdt:Transform="Remove" xdt:Locator="Match(name)"/>
</connectionStrings>
令牌替换:
__myConnectionString__
答案 0 :(得分:1)
您应该对构建时想要发生的事情使用转换。就像删除你只在开发中使用的任何位一样。
我通常使用硬编码的本地值,然后在转换期间使用版本管理键替换它们。然后RM可以拥有其余的。
答案 1 :(得分:0)
我不确定 推荐的方法,但我建议在构建期间更改Web.config的方法是使用Web.config transform。所以,在Web.Release.config中(不要忘记,如果你正在进行连续交付,你的构建可能会一直存在,所以你需要构建为发布版)你可能会有类似这样的连接字符串:
<connectionStrings>
<add name="My ConnectionString"
connectionString="Data Source=__DATA_SOURCE__;Initial Catalog=__INITIAL_CATALOG__;Integrated Security=SSPI;"providerName="System.Data.SqlClient"
xdt:Transform="SetAttributes"xdt:Locator="Match(name)"/>
</connectionStrings>
这会在构建之后在Web.config中生成连接字符串的标记化版本,因此如果您想要不同的东西,例如完全删除它们,显然请使用Remove transform。您可以在我的博文here中更多地了解这一点。请注意,我正在将变换与 / p:UseWPP_CopyWebApplication = true / p:PipelineDependsOnBuild = false MSBuild参数结合使用。