【问题标题】:web.config transformation + msdeploy - keeping production passwords out of source controlweb.config 转换 + msdeploy - 使生产密码不受源代码控制
【发布时间】:2014-05-18 09:24:15
【问题描述】:

我们的 web.config 需要一个数据库密码。

我们如何在构建 msdeploy(又名 Web Deploy)包或实际部署时指定此密码?

我们使用 msbuild (/p:DeployOnBuild=true) 和 web.config 转换来构建 msdeploy 包以获取特定于环境的详细信息。

【问题讨论】:

    标签: msbuild msdeploy webdeploy web.config-transform


    【解决方案1】:

    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 属性会怎样?
    猜你喜欢
    • 1970-01-01
    • 2023-04-09
    • 2013-05-12
    • 1970-01-01
    • 2019-05-22
    • 2016-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多