【发布时间】:2016-04-26 12:53:05
【问题描述】:
我使用 MSBuild 构建和部署 Web 应用程序。
MSBuild.exe MySite.csproj /p:DeployOnBuild=True /p:WebPublishMethod=MSDeploy /p:MSDeployServiceURL=mysite.example.com
我的站点连接到 SQL Server 数据库。
<connectionStrings>
<add name="dbconnection"
connectionString ="Data Source=(local);Initial Catalog=MySite;Integrated Security=SSPI;"
providerName="System.Data.SqlClient" />
</connectionStrings>
我针对本地数据库进行开发,但在将站点部署到测试或生产服务器时需要更改连接字符串。
我在一个名为 parameters.xml 的文件中声明了一个名为 dbconnection 的部署参数
<parameter name="dbconnection"
defaultValue="Data Source={server};Initial Catalog={database};Integrated Security=SSPI;"
tags="DBConnectionString">
<parameterEntry type="XmlFile"
scope="\\Web.config$"
match="/configuration/connectionStrings/add[@name='dbconnection']/@connectionString"/>
</parameter>
我可以轻松创建参数化的 Web 部署包并使用 msdeploy 进行部署。
msdeploy -verb:sync
-source:package:MySite.zip
-dest:iisApp="Site1/MySite"
-setParam:name=dbconnection,value="Data Source=.\SQLEXPRESS;Initial Catalog=MySiteTest;Integrated Security=SSPI"
但是,我真的希望能够在 MSBuild 中完成所有工作。 -setParam 的 MSBuild 等效项是什么?
【问题讨论】: