具有等效标识的多个程序集.NETFramework Facades

时间:2016-11-24 14:36:53

标签: c# .net

在同一个代码分支上,我们在一台机器上成功构建,但在另一台机器上我们得到了这个:

  

错误导入了具有等效标识的多个程序集:'... \ 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'。删除其中一个重复的引用。

我们如何解决?

8 个答案:

答案 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的问题。

按照以下说明操作: https://developer.xamarin.com/guides/cross-platform/getting_started/visual_studio_with_xamarin/troubleshooting/uninstall-xamarinvs/

将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(如其他一些答案所指出)。