错误 CS1703:已导入具有等效标识的多个程序集 - Xamarin + VSTS

Error CS1703: Multiple assemblies with equivalent identity have been imported - Xamarin + VSTS

我升级到 Visual Studio 2015 的最新 Xamarin(社区版),重新编译了我的项目,检查了一些小的代码更改,我的 VSTS 构建服务器失败并显示此错误消息:

[error]CSC(0,0): Error CS1703: Multiple assemblies with equivalent identity have been imported: 'C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0\mscorlib.dll' and 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscorlib.dll'. Remove one of the duplicate references.

Internet 搜索 return 几乎没有关于此问题的一般详细信息,在 VSTS 和 Xamarin 的上下文中也没有任何有价值的信息。

我认为与该问题相关的唯一代码更改是由 Visual Studio 在项目文件中完成的:

我只为 Android 开发,我在 Xamarin 4.2 上使用 JDK 8 u101。

知道如何解决这个问题吗?

我刚刚解决了这个问题。尝试从解决方案本身的引用文件夹中删除 mscorlib.dll。请参阅下面突出显示的文件夹(参考文件夹)。 Xamarin 似乎在其构建期间默认包含 mscorlib.dll 。希望对您有所帮助:)

我在安装 .net 核心 nuget 时出错,它显式安装了所有 System.* 库。原来我的 Microsoft.Net.Compilers 包需要升级,然后这个错误就消失了。

我通过将 7.1 改回 6.0 自行解决了这个问题,然后编译又开始工作了。问题只出现在我的编译代理上:

我更新了所有 Microsoft 软件包,编译器错误消失了。 所以我认为这种编译器错误的一般解决方案包括两个步骤:

  1. 升级涉及的NuGet包;
  2. 如果第一步还不够,请升级所有 Microsoft NuGet 包。

就我而言,我在其中一个引用项目中有一个包引用 "Microsoft.NETCore.Portable.Compatibility"。我删除了它并成功构建了 Android 和 iOS 项目。

我遇到了类似的问题。

jenkins 控制台输出出现以下错误

Multiple assemblies with equivalent identity have been imported: 'C:\Program Files (x86)\Jenkins\jobs\...\lib\net461\System.ComponentModel.Annotations.dll' and 'C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\Facades\System.ComponentModel.Annotations.dll'. 
Remove one of the duplicate references.

我删除了我的一个项目中的重复引用并且它起作用了。

.csproj 进行了以下更改,达到了目的:

   <PackageReference Include="System.Reflection.Emit">
      <Version>4.3.0</Version>
      <ExcludeAssets>All</ExcludeAssets>
      <IncludeAssets>none</IncludeAssets>
    </PackageReference>