如何使用 .xdt 文件
How to use .xdt file
我已按照以下 post Nuget Config.Transform Formatting Issue 在 NuGet 中添加 web.config 文件条目。
我在我的 NuGet 包中使用了以下 xdt 文件
<compilation>
<assemblies>
<add assembly="ASSEMBLY1, Version=1.0.10, Culture=neutral" xdt:Transform="Insert"/>
<add assembly="ASSEMBLY2, Version=1.0.11, Culture=neutral" xdt:Transform="Insert"/>
<add assembly="ASSEMBLY3, Version=1.0.12, Culture=neutral" xdt:Transform="Insert"/>
<add assembly="ASSEMBLY4, Version=1.0.13, Culture=neutral" xdt:Transform="Insert"/>
</assemblies>
</compilation>
</system.web>
并且我已尝试安装此 NuGet,但出现以下错误。错误将转换应用到项目 'WebApplication60' 中的 'web.config' 时出错 源文档中没有元素匹配 '/configuration/system.web/compilation/assemblies/add' 0
因为在项目中找不到程序集节点。我试图将 xdt:Transform="Insert" 添加到程序集节点,但它会导致 web.config 文件中出现重复条目,如下所示
<assemblies>
<add assembly="ASSEMBLY1, Version=1.0.10, Culture=neutral" xdt:Transform="Insert"/>
<add assembly="ASSEMBLY2, Version=1.0.11, Culture=neutral" xdt:Transform="Insert"/>
<add assembly="ASSEMBLY3, Version=1.0.12, Culture=neutral" xdt:Transform="Insert"/>
<add assembly="ASSEMBLY4, Version=1.0.13, Culture=neutral" xdt:Transform="Insert"/>
<add assembly="ASSEMBLY1, Version=1.0.10, Culture=neutral" xdt:Transform="Insert"/>
<add assembly="ASSEMBLY2, Version=1.0.11, Culture=neutral" xdt:Transform="Insert"/>
<add assembly="ASSEMBLY3, Version=1.0.12, Culture=neutral" xdt:Transform="Insert"/>
<add assembly="ASSEMBLY4, Version=1.0.13, Culture=neutral" xdt:Transform="Insert"/>
</assemblies>
如何避免重复输入?
为避免插入重复的条目,您可以尝试先删除 assemblies
元素(如果有),然后插入一个新的元素,此后填充了 <add assembly=""/>
元素:
<compilation>
<assemblies xdt:Transform="Remove"/>
<assemblies xdt:Transform="Insert">
<add assembly="ASSEMBLY1, Version=1.0.10, Culture=neutral"/>
<add assembly="ASSEMBLY2, Version=1.0.11, Culture=neutral"/>
<add assembly="ASSEMBLY3, Version=1.0.12, Culture=neutral"/>
<add assembly="ASSEMBLY4, Version=1.0.13, Culture=neutral"/>
</assemblies>
</compilation>
或者,您可以尝试使用 InsertIfMissing
转换插入 while 元素并避免重复,以防它已经存在:
<compilation>
<assemblies xdt:Transform="InsertIfMissing">
<add assembly="ASSEMBLY1, Version=1.0.10, Culture=neutral"
xdt:Transform="InsertIfMissing" xdt:Locator="Match(assembly)"/>
<add assembly="ASSEMBLY2, Version=1.0.11, Culture=neutral"
xdt:Transform="InsertIfMissing" xdt:Locator="Match(assembly)"/>
<add assembly="ASSEMBLY3, Version=1.0.12, Culture=neutral"
xdt:Transform="InsertIfMissing" xdt:Locator="Match(assembly)"/>
<add assembly="ASSEMBLY4, Version=1.0.13, Culture=neutral"
xdt:Transform="InsertIfMissing" xdt:Locator="Match(assembly)"/>
</assemblies>
</compilation>
我已按照以下 post Nuget Config.Transform Formatting Issue 在 NuGet 中添加 web.config 文件条目。
我在我的 NuGet 包中使用了以下 xdt 文件
<compilation>
<assemblies>
<add assembly="ASSEMBLY1, Version=1.0.10, Culture=neutral" xdt:Transform="Insert"/>
<add assembly="ASSEMBLY2, Version=1.0.11, Culture=neutral" xdt:Transform="Insert"/>
<add assembly="ASSEMBLY3, Version=1.0.12, Culture=neutral" xdt:Transform="Insert"/>
<add assembly="ASSEMBLY4, Version=1.0.13, Culture=neutral" xdt:Transform="Insert"/>
</assemblies>
</compilation>
</system.web>
并且我已尝试安装此 NuGet,但出现以下错误。错误将转换应用到项目 'WebApplication60' 中的 'web.config' 时出错 源文档中没有元素匹配 '/configuration/system.web/compilation/assemblies/add' 0
因为在项目中找不到程序集节点。我试图将 xdt:Transform="Insert" 添加到程序集节点,但它会导致 web.config 文件中出现重复条目,如下所示
<assemblies>
<add assembly="ASSEMBLY1, Version=1.0.10, Culture=neutral" xdt:Transform="Insert"/>
<add assembly="ASSEMBLY2, Version=1.0.11, Culture=neutral" xdt:Transform="Insert"/>
<add assembly="ASSEMBLY3, Version=1.0.12, Culture=neutral" xdt:Transform="Insert"/>
<add assembly="ASSEMBLY4, Version=1.0.13, Culture=neutral" xdt:Transform="Insert"/>
<add assembly="ASSEMBLY1, Version=1.0.10, Culture=neutral" xdt:Transform="Insert"/>
<add assembly="ASSEMBLY2, Version=1.0.11, Culture=neutral" xdt:Transform="Insert"/>
<add assembly="ASSEMBLY3, Version=1.0.12, Culture=neutral" xdt:Transform="Insert"/>
<add assembly="ASSEMBLY4, Version=1.0.13, Culture=neutral" xdt:Transform="Insert"/>
</assemblies>
如何避免重复输入?
为避免插入重复的条目,您可以尝试先删除 assemblies
元素(如果有),然后插入一个新的元素,此后填充了 <add assembly=""/>
元素:
<compilation>
<assemblies xdt:Transform="Remove"/>
<assemblies xdt:Transform="Insert">
<add assembly="ASSEMBLY1, Version=1.0.10, Culture=neutral"/>
<add assembly="ASSEMBLY2, Version=1.0.11, Culture=neutral"/>
<add assembly="ASSEMBLY3, Version=1.0.12, Culture=neutral"/>
<add assembly="ASSEMBLY4, Version=1.0.13, Culture=neutral"/>
</assemblies>
</compilation>
或者,您可以尝试使用 InsertIfMissing
转换插入 while 元素并避免重复,以防它已经存在:
<compilation>
<assemblies xdt:Transform="InsertIfMissing">
<add assembly="ASSEMBLY1, Version=1.0.10, Culture=neutral"
xdt:Transform="InsertIfMissing" xdt:Locator="Match(assembly)"/>
<add assembly="ASSEMBLY2, Version=1.0.11, Culture=neutral"
xdt:Transform="InsertIfMissing" xdt:Locator="Match(assembly)"/>
<add assembly="ASSEMBLY3, Version=1.0.12, Culture=neutral"
xdt:Transform="InsertIfMissing" xdt:Locator="Match(assembly)"/>
<add assembly="ASSEMBLY4, Version=1.0.13, Culture=neutral"
xdt:Transform="InsertIfMissing" xdt:Locator="Match(assembly)"/>
</assemblies>
</compilation>