Nuget System.IO.InvalidDataException:将转换应用于';web.config';
我正在创建一个自定义包,安装时需要修改目标应用程序的web.config或app.config文件。我已经成功地创建并发布了该软件包,特别是遵循 但是,当我尝试在项目中安装软件包时,会出现以下错误:Nuget System.IO.InvalidDataException:将转换应用于';web.config';,nuget,nuget-package,Nuget,Nuget Package,我正在创建一个自定义包,安装时需要修改目标应用程序的web.config或app.config文件。我已经成功地创建并发布了该软件包,特别是遵循 但是,当我尝试在项目中安装软件包时,会出现以下错误: System.IO.InvalidDataException:将转换应用于项目“WebTestsNuget”中的“web.config”时出错源文档中没有与“/configuration/System.runtime.caching/memoryCache”匹配的元素。 我做了一些搜索,并建议删除.
System.IO.InvalidDataException:将转换应用于项目“WebTestsNuget”中的“web.config”时出错源文档中没有与“/configuration/System.runtime.caching/memoryCache”匹配的元素。
我做了一些搜索,并建议删除.xdt
文件的配置
节点中的xmlns
属性。当我发布并再次尝试安装时,我发现了错误
System.IO.InvalidDataException:将转换应用于项目“WebTestSnGet”中的“web.config”时出错。“xdt”是未声明的前缀。
我发现了一个问题,但环境是单一发展的,这要追溯到2013年。我正在使用Visual Studio 2015和.NET 4.6.1进行我的工作,因此没有太大帮助
我还能做些什么来解决这个问题?
(注意:我正在使用Nuget 3.4.4.1321)经过大量徒劳的搜索和试验,我终于尝试了旧的(Nuget 2.6之前)方法:使用
.transform
文件,效果非常好
在这里,使用XDT要简单得多。假设要转换web.config
(或app.config
)文件,则创建名为web.config.transform
(或app.config.transform
)的文件,并将希望合并到目标.config
文件中的节点添加到目标中
例如,如果.transform
文件包含以下内容:
<configuration>
<system.webServer>
<modules>
<add name="MyNuModule" type="Sample.MyNuModule" />
</modules>
<system.webServer>
</configuration>
<configuration>
.
.
<system.webServer>
<modules>
<add name="Module" type="Sample.Module" />
</modules>
<system.webServer>
.
.
</configuration>
目标配置文件包含以下内容:
<configuration>
<system.webServer>
<modules>
<add name="MyNuModule" type="Sample.MyNuModule" />
</modules>
<system.webServer>
</configuration>
<configuration>
.
.
<system.webServer>
<modules>
<add name="Module" type="Sample.Module" />
</modules>
<system.webServer>
.
.
</configuration>
.
.
.
.
合并后的结果将是
<configuration>
.
.
<system.webServer>
<modules>
<add name="MyNuModule" type="Sample.MyNuModule" />
<add name="Module" type="Sample.Module" />
</modules>
<system.webServer>
.
.
</configuration>
.
.
.
.
如果目标文件没有
节点,甚至没有
节点,它会相应地添加它。经过大量徒劳的搜索和尝试,我终于尝试了旧的(NuGet 2.6之前)方法:使用.transform
文件,效果非常好
在这里,使用XDT要简单得多。假设要转换web.config
(或app.config
)文件,则创建名为web.config.transform
(或app.config.transform
)的文件,并将希望合并到目标.config
文件中的节点添加到目标中
例如,如果.transform
文件包含以下内容:
<configuration>
<system.webServer>
<modules>
<add name="MyNuModule" type="Sample.MyNuModule" />
</modules>
<system.webServer>
</configuration>
<configuration>
.
.
<system.webServer>
<modules>
<add name="Module" type="Sample.Module" />
</modules>
<system.webServer>
.
.
</configuration>
目标配置文件包含以下内容:
<configuration>
<system.webServer>
<modules>
<add name="MyNuModule" type="Sample.MyNuModule" />
</modules>
<system.webServer>
</configuration>
<configuration>
.
.
<system.webServer>
<modules>
<add name="Module" type="Sample.Module" />
</modules>
<system.webServer>
.
.
</configuration>
.
.
.
.
合并后的结果将是
<configuration>
.
.
<system.webServer>
<modules>
<add name="MyNuModule" type="Sample.MyNuModule" />
<add name="Module" type="Sample.Module" />
</modules>
<system.webServer>
.
.
</configuration>
.
.
.
.
如果目标文件没有
节点,甚至没有
节点,它将相应地添加它