【问题标题】:Mixing web.config transforms and Parameters.xml, or something to that effect混合 web.config 转换和 Parameters.xml,或类似的东西
【发布时间】:2012-07-23 13:29:40
【问题描述】:

我使用 web.config 转换已经有一段时间了,用于在我们的一些项目中进行部署。 我现在想要实现的是让 Web Deploy 的“导入包”屏幕提示检查和更新 中的几个变量,并针对每个环境进行调整

我知道我可以使用Parameters.xml 来引入这些可编辑变量,但我还没有找到如何为不同的环境目标更新默认值。

考虑以下简洁但不重叠的示例,该示例希望用户编辑“specialServer”AppSetting,并在为 NewEnv 编译时呈现不同的默认值强>目标:

Parameters.xml 中的示例条目:

<parameter name="Special server" description="" tags="" defaultValue="server1-dev.domain">
    <parameterEntry kind="XmlFile" scope="\\web.config$" match="/configuration/appSettings/add[@key='specialServer']/@value" />
</parameter>

Web.NewEnv.config 的示例转换,为

设置不同的值
<appSettings>
    <add key="specialServer"
        value="other-server.domain2"
        xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
</appSettings>

Web Deploy 中的提示示例:

关于如何更新不同构建目标的默认值的任何建议?

谢谢。

【问题讨论】:

    标签: webdeploy web-config-transform


    【解决方案1】:

    我们使用批处理脚本来调用 msdeploy。它允许 parm 指定 Parameters.xml 文件。然后使用多个 Parameters.xml 文件(每个环境一个),您可以像这样调用 msdeploy:

    "C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -source:package='D:\mysite.zip' -dest:auto,computerName="testcomp1",includeAcls="False" -verb:sync -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension -setParamFile:"D:\mysite.test.SetParameters.xml"

    【讨论】:

      【解决方案2】:

      您必须为每个环境生成新的参数定义文件并将其嵌入到您的WebDeploy 包中。

      这将为每个环境提供不同的部署包,并允许您为这些参数指定不同的默认值。显然,如果参数转换并且您最终会在配置中烘烤,那么这样做会破坏这一点,但这是实现您想要的唯一方法。

      我不推荐这种方法,但它可能适合您的需求。

      【讨论】:

        猜你喜欢
        • 2011-11-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-30
        • 2010-10-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多