【问题标题】:Remove Parameters from the generated setParameters.xml从生成的 setParameters.xml 中删除参数
【发布时间】:2013-07-26 11:49:24
【问题描述】:

有没有办法从 MSDeploy 包中生成的 SetParameters.xml 中删除参数。

我的 Parameters.xml 如下所示:

<parameter name="Server" defaultValue="" />
<parameter name="Directory" defaultValue="" />
<parameter name="Service URL" defaultValue="http://{Server}/{Directory}/Services/GeneralIntegrationService.svc" tags="hidden">
<parameterEntry kind="XmlFile" scope="Web.config" match="//system.serviceModel/client/endpoint[@name='BasicHttpBinding_IGeneralIntegrationService']/@address" />

我想要的是生成的 SetParameters.xml 只包含前 2 个参数。

我已经查看了这个问题: Can MSBuild exclude "Hidden" Web Deploy parameters from the generated SetParameters.xml?

但是,我无法理解 .targets 文件应该如何设置。有人可以详细说明 parameters.xml 和 .targets 文件的样子吗?另外,我需要在 .targets 文件的构建属性中设置什么吗?

【问题讨论】:

  • 为什么不把你不想要的东西作为配置转换中的参数?
  • 这个想法是使用 msbuild 轻松创建一个包,可以通过 webui 或使用 setparameters 进行部署。这允许用户比较 2 个 setparameters 文件以查看新版本中的更改。我不确定您将如何通过转换实现这一目标,但答案适合我会接受它..

标签: msdeploy


【解决方案1】:

我不认为 SetParameters 方法是为这种方式设计的。我会使用 config-transforms 来获取您想要对安装应用程序的人隐藏的参数。

编辑 实际上,对于您的方案,您可以在 Web.config 中进行“搜索和替换”以获得所需的结果

在您的 parameters.xml 中

<parameters>
    <parameter name="Server" description="" defaultValue="" tags="">
        <parameterEntry kind="TextFile" scope="\\web.config$" match="@@Server@@" />
    </parameter>
    <parameter name="Directory" description="" defaultValue="" tags="">
        <parameterEntry kind="TextFile" scope="\\web.config$" match="@@Directory@@" />
    </parameter>
</parameters>

而你需要在 Web.Config 中的端点地址,只需将 URL 像这样:

http://@@Server@@/@@Directory@@/Services/GeneralIntegrationService.svc

【讨论】:

  • 如果我要接受这一点,我需要更多信息,可能是一个例子。我最终确实设法通过 .targets 做到了,但您的解决方案听起来确实很有趣
  • @Martin 我刚刚添加了另一个非常简单的解决方案。
  • 看起来很完美,这是他们的文档,正在努力寻找。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-21
  • 1970-01-01
  • 2013-11-23
  • 1970-01-01
  • 2016-04-29
  • 1970-01-01
相关资源
最近更新 更多