首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用.xdt文件

如何使用.xdt文件
EN

Stack Overflow用户
提问于 2016-05-19 05:19:50
回答 1查看 765关注 0票数 0

我遵循下面的post Nuget Config.Transform Formatting Issue在NuGet中添加web.config文件条目。

我在我的NuGet包中使用了下面的xdt文件

代码语言:javascript
复制
    <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,得到以下错误。将转换应用到项目“'/configuration/system.web/compilation/assemblies/add‘”中的“web.config”时发生错误--源文档中没有匹配WebApplication60 0的元素

因为在项目中找不到程序集节点。我尝试将xdt:Transform=“插入”添加到程序集节点,但它会导致web.configfile中的重复条目,如下所示

代码语言:javascript
复制
<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>

如何避免重复的条目?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-19 05:27:39

为了避免插入重复的条目,您可以尝试先删除assemblies元素(如果有的话),然后插入一个新的条目,该元素随后使用<add assembly=""/>元素填充:

代码语言:javascript
复制
<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转换在元素时插入,并避免重复,以防它已经存在:

代码语言:javascript
复制
<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>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37314455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档