在同一个代码分支上,我们在一台机器上成功构建,但在另一台机器上我们得到了这个:
错误导入了具有等效标识的多个程序集:'... \ src \ packages \ System.Xml.ReaderWriter.4.3.0 \ lib \ net46 \ System.Xml.ReaderWriter.dll'和'C:\ Program文件(x86)\参考程序集\ Microsoft \ Framework.NETFramework \ v4.6.2 \ Facades \ System.Xml.ReaderWriter.dll'。删除其中一个重复的引用。
我们如何解决?
答案 0 :(得分:4)
使用MSBuild 15解决了这个问题。 MSBuild 15是.NET Core SDK的一部分,或者可以使用Build Tools for Visual Studio 2017下载。
答案 1 :(得分:1)
我怀疑您在项目中直接引用(通过GAC或通过浏览的文件系统...)dll和Nuget包。
最好尝试卸载Nuget软件包,然后检查您的引用并取消选中对System.Xml.ReaderWriter.dll
的任何剩余引用,然后再次安装Nuget引用。
<强>更新强>
供参考,a similar error was encountered with System.Threading
when an EntityFramework package was renamed。也许你的一个软件包有更新的版本或者有一个重命名的命名空间?或者您可能有不兼容的.NET Standard版本?
答案 2 :(得分:1)
解决了#34;错误多个程序集&#34;从计算机和Visual Studio 15卸载Xamarin的问题。
将asp.net nuget软件包从版本1.0.0更新到1.1.0时出现了问题。
答案 3 :(得分:1)
请参见https://github.com/dotnet/corefx/issues/14050
这说明在nuget软件包的v4.3.0中,它要求使用VS 2015构建工具Update 3或更高版本。
如果无法升级,请将该软件包降级至v4.0.11。
答案 4 :(得分:0)
如果有人来寻找另一个答案。可能会发生(6/6/2018),因为软件包重新安装了NetStandard和.NET Framework的匹配命名空间之间的歧义。
问题根本更新了NetStandard第三方软件包并且它需要/安装了MainActivity().adapter.count.toString()
的依赖关系(我相信v4.3.0。)在该软件包之前老实说工作正常,所以我手动删除了CSPROJ和软件包的依赖关系。配置主要解决方案。
它不干净,但演示了一个NuGet或MSBuild问题,但没有认识到它们实际上是不同的程序集,因此被视为重复引用。
答案 5 :(得分:0)
对.csproj进行了以下更改,从而达到了目的:
<PackageReference Include="System.Reflection.Emit">
<Version>4.3.0</Version>
<ExcludeAssets>All</ExcludeAssets>
<IncludeAssets>none</IncludeAssets>
</PackageReference>
答案 6 :(得分:0)
删除“ C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.6.2 \ Facades \ System.Xml.ReaderWriter.dll”中的dll。 并构建您的代码。
构建成功后再添加回去。
答案 7 :(得分:0)
我可以通过将NuGet包 Microsoft.Net.Compilers 更新到新版本来解决此问题。当时是1.0.0,我相信它没有使用更新版本的MSBuild(如其他一些答案所指出)。