【发布时间】:2014-05-18 09:24:15
【问题描述】:
我们的 web.config 需要一个数据库密码。
我们如何在构建 msdeploy(又名 Web Deploy)包或实际部署时指定此密码?
我们使用 msbuild (/p:DeployOnBuild=true) 和 web.config 转换来构建 msdeploy 包以获取特定于环境的详细信息。
【问题讨论】:
标签: msbuild msdeploy webdeploy web.config-transform
我们的 web.config 需要一个数据库密码。
我们如何在构建 msdeploy(又名 Web Deploy)包或实际部署时指定此密码?
我们使用 msbuild (/p:DeployOnBuild=true) 和 web.config 转换来构建 msdeploy 包以获取特定于环境的详细信息。
【问题讨论】:
标签: msbuild msdeploy webdeploy web.config-transform
Web.config 转换按照设计是构建时间 转换。我倾向于只将它们用于“除调试之外的所有”更改。
您需要的是一个 MSDeploy 参数。假设您使用的是pubxml 发布配置文件,生成的包将自动具有名为“Name-Web.config Connection String”的参数(其中“Name”与 web.config 中的名称属性匹配)这将应用于连接字符串。
如果您部署包,您可以通过使用-setParam 提供值来更改连接字符串:
Website.deploy.cmd /Y ... ^
-setParam:name="Name-Web.config Connection String",value="connection_string"
如果您使用发布配置文件进行部署,您可以通过更新MSDeployParameterValue 值来设置pubxml 文件中的值(您应该会在文件底部附近看到正确的值):
<MSDeployParameterValue Include="$(DeployParameterPrefix)DBName-Web.config Connection String">
<ParameterValue>connection_string</ParameterValue>
</MSDeployParameterValue>
【讨论】:
Name-Web.config只是申请连接字符串?如果我想更改 AppSettings 属性会怎样?