Web.config 转换添加树
Web.config transforms add tree
我想在发布时将以下内容添加到网络配置中:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Strict-Transport-Security" value="max-age=16070400; includeSubDomains" xdt:Transform="Insert" />
</customHeaders>
</httpProtocol>
</system.webServer>
默认网络配置中没有任何自定义 headers,因此我在发布时遇到错误:No element in the source document matches '/configuration/system.webServer/httpProtocol/customHeaders'
。
我可以修复它,只需将空元素添加到 web.config,如下所示:
<httpProtocol>
<customHeaders>
</customHeaders>
</httpProtocol>
然而,这并不像正确的方式。
有没有更正确的方法在变换上构建元素树?
将空 <customHeaders>
节点添加到 web.config 是可行的,因为您拥有的转换是插入 <add .../>
节点,而不是 <customHeaders>
节点。它只能插入与该点匹配的位置。
要插入节点树,请将 xdt:Transform="Insert"
在 XML 中向上移动一点。如果您从 web.config 开始:
<?xml version="1.0">
<configuration>
<system.webServer>
<httpProtocol />
</system.webServer>
</configuration>
并将其转换为:
<?xml version="1.0">
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.webServer>
<httpProtocol>
<customHeaders xdt:Transform="Insert">
<add name="Strict-Transport-Security" value="max-age=16070400; includeSubDomains" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
你最终会得到:
<?xml version="1.0">
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Strict-Transport-Security" value="max-age=16070400; includeSubDomains" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
这是一个有用的 web.config transformation tester。
我想在发布时将以下内容添加到网络配置中:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Strict-Transport-Security" value="max-age=16070400; includeSubDomains" xdt:Transform="Insert" />
</customHeaders>
</httpProtocol>
</system.webServer>
默认网络配置中没有任何自定义 headers,因此我在发布时遇到错误:No element in the source document matches '/configuration/system.webServer/httpProtocol/customHeaders'
。
我可以修复它,只需将空元素添加到 web.config,如下所示:
<httpProtocol>
<customHeaders>
</customHeaders>
</httpProtocol>
然而,这并不像正确的方式。
有没有更正确的方法在变换上构建元素树?
将空 <customHeaders>
节点添加到 web.config 是可行的,因为您拥有的转换是插入 <add .../>
节点,而不是 <customHeaders>
节点。它只能插入与该点匹配的位置。
要插入节点树,请将 xdt:Transform="Insert"
在 XML 中向上移动一点。如果您从 web.config 开始:
<?xml version="1.0">
<configuration>
<system.webServer>
<httpProtocol />
</system.webServer>
</configuration>
并将其转换为:
<?xml version="1.0">
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.webServer>
<httpProtocol>
<customHeaders xdt:Transform="Insert">
<add name="Strict-Transport-Security" value="max-age=16070400; includeSubDomains" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
你最终会得到:
<?xml version="1.0">
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Strict-Transport-Security" value="max-age=16070400; includeSubDomains" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
这是一个有用的 web.config transformation tester。