msbuild – 如何忽略SetParameter.xml中的连接字符串参数

前端之家收集整理的这篇文章主要介绍了msbuild – 如何忽略SetParameter.xml中的连接字符串参数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用msDeploy(3.0)来部署我的MVC应用程序.我有一个构建管道,为msdeploy生成构建工件,我的部署管道在将其部署到生产实例之前,在Web.config上应用适当的web.config转换.其中一个转换包括对连接字符串的更改.但是,查看已部署的实例,我的web.config转换似乎被构建工件中setParameters.xml中的参数覆盖.

理想的行为是我将避免将任何连接字符串添加到SetParameter.xml,以便我的所有连接字符串覆盖仅由我的部署管道控制.我如何实现这一目标?

下面是SetParameters.xml文件的示例

<parameters>
       <setParameter name="IIS Web Application Name" value="Default/Foo"/>
       <setParameter name="Foo-Web.config Connection String" value="Server=Foo,1433;Database=Bar;Integrated Security=SSPI;MultiSubnetFailover=True;App=Something;Connection Timeout=25"/>
   </parameters>

理想情况下,它看起来像

<parameters>
       <setParameter name="IIS Web Application Name" value="Default/Foo"/>
   </parameters>

我已经尝试将parameters.xml文件传递给msbuild步骤,该步骤不包含连接字符串参数但不起作用

解决方法

在我的头靠在墙上几个小时后,我终于找到了解决办法. MsBuild接受一个参数-p:AutoParameterizationWebConfigConnectionStrings = false,以防止连接字符串被参数化.不幸的是,这个参数很少或没有文档.

您还可以在每个项目的基础上添加此项

<AutoParameterizationWebConfigConnectionStrings>false</AutoParameterizationWebConfigConnectionStrings>

到构建配置的PropertyGroup.

猜你在找的XML相关文章