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

问题描述 投票:18回答:7

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

[错误] CSC(0,0):错误CS1703:导入了具有等效标识的多个程序集:'C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework \ MonoAndroid \ v1.0 \ mscorlib.dll'和'C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \ mscorlib.dll中'。删除其中一个重复的引用。

互联网搜索通常几乎不会返回有关此问题的详细信息,并且在VSTS和Xamarin的上下文中根本没有任何有价值的信息。

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

enter image description here

我只针对Android开发,使用的是Xamarin 4.2并使用JDK 8 u101。

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

c# xamarin mono xamarin.android azure-pipelines
7个回答
34
投票

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

enter image description here


4
投票

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


2
投票

.csproj进行了以下更改,其中有诀窍:

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

1
投票

我通过将7.1更改为6.0来修复此问题,并且编译再次开始工作。该问题仅出现在我的编译代理上:


1
投票

在我的情况下,我在其中一个引用的项目中有一个包引用“Microsoft.NETCore.Portable.Compatibility”。我删除了它,Android和iOS项目成功构建。


0
投票

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

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

0
投票

我有一个类似的问题。

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.

我在其中一个项目中删除了重复的引用,但它确实有效。

© www.soinside.com 2019 - 2024. All rights reserved.