我正在尝试使用XDT Transforms为我的NuGet包创建一个web.config安装程序。
我想转换web.config文件:
<configuration>
<system.web>
</system.web>
</configuration>
看起来像这样:
<configuration>
<system.web>
<httpHandlers>
<add path="*." verb="*" type="CustomHandler" />
</httpHandlers>
</system.web>
</configuration>
以下是我尝试过的转换:
转化#1:
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.web>
<httpHandlers>
<add path="*." verb="*" type="CustomHandler" xdt:Transform="Insert" />
</httpHandlers>
</system.web>
</configuration>
仅当目标web.config已包含<httpHandlers />
部分时才有效。
在上面的例子中(注意,没有<httpHandlers />
部分),这会导致错误:
源文档中的任何元素都不匹配'/configuration/system.web/httpHandlers/add'
转化#2:
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.web>
<httpHandlers xdt:Transform="Insert">
<add path="*." verb="*" type="CustomHandler" />
</httpHandlers>
</system.web>
</configuration>
这在上面的示例中按预期工作,但是如果web.config文件包含预先存在的<httpHandlers />
部分,则该部分将重复。
请记住,这是针对NuGet包的,我无法对用户配置的状态做出假设。
我是XDT Transforms的新手,所以可能错过了一些明显的东西。