7

我已经使用 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 中的提示示例:

在此处输入图像描述

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

谢谢。

4

2 回答 2

1

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

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

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

于 2014-01-21T08:24:23.433 回答
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:同步 -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension -setParamFile:"D:\mysite.test.SetParameters.xml"

于 2017-07-24T16:03:44.173 回答