我可以使用Web Deploy将元素插入到web.config中吗?

lad*_*dge 9 .net xslt xpath msdeploy webdeploy

是否可以使用Web Deploy的Parameters.xml系统将XML元素插入到我的web.config中?

XMLFILE出现参数"厚道"是最接近我所需要的,但它的match属性只接受XPath查询,而我似乎没有能够在我的XPath查询指定一个不存在的元素.(或者说,我可以指定一个不存在的元素 - Web Deploy只是忽略它.)具体来说,我想改变它:

<configuration>
   <plugins>
      <add name="bleh"/>
   </plugins>
</configuration>
Run Code Online (Sandbox Code Playgroud)

进入这个:

<configuration>
   <plugins>
      <add name="bleh">
        <option name="foo" value="bar"/>
      </add>
   </plugins>
</configuration>
Run Code Online (Sandbox Code Playgroud)

(不幸的是,我无法使用空option元素预先存储web.config,因为这个特定的插件系统不喜欢无法识别/空的选项.)

谢谢你的任何想法!

Ver*_*igo 3

现在从 Web Deploy V3 开始,这样的事情就成为可能。请参阅官方文档

以下是parameters.xml 文件的一个示例,该文件会将 newNode 添加到所有节点,包括目标 xml 文件中的根节点:

<parameters>
  <parameter name="Additive" description="Add a node" defaultValue="&lt;newNode />" tags="">
    <parameterEntry kind="XmlFile" scope=".*" match="//*" />
  </parameter>
</parameters>
Run Code Online (Sandbox Code Playgroud)

  • 他们的解决方案是将编码的 XML 块添加为值。我真的觉得这种做法很荒谬。更糟糕的是,它是微软的“官方”解决方案。我有一些相当复杂的 XML 部分,需要在部署时从 TFS 添加到 Azure,这很难使用。 (3认同)
  • 将其视为一种黑客行为而不是解决方案。我同意这种方法对于复杂的块来说是可怕的。您可以改用 web.config 转换吗? (2认同)