我升级到Visual Studio 2015(社区版)的最新Xamarin,重新编译了我的项目,检查了一些小的代码更改,我的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在项目文件中完成的:
我只针对Android开发,使用的是Xamarin 4.2并使用JDK 8 u101。
知道如何解决这个问题吗?
答案 0 :(得分:34)
我刚刚解决了这个问题。尝试从解决方案本身的References文件夹中删除mscorlib.dll。请参阅下面突出显示的文件夹(参考文件夹)。似乎Xamarin在构建期间默认包含mscorlib.dll。希望它有所帮助:)
答案 1 :(得分:4)
我在安装.net核心nuget时出错,它显式安装了所有System。*库。事实证明我的Microsoft.Net.Compilers
包需要升级,然后这个错误就消失了。
答案 2 :(得分:1)
我通过将7.1更改为6.0来修复此问题,并且编译再次开始工作。该问题仅出现在我的编译代理上:
答案 3 :(得分:1)
在我的情况下,我有一个包参考" Microsoft.NETCore.Portable.Compatibility"在其中一个参考项目中。我删除了它,Android和iOS项目成功构建。
答案 4 :(得分:0)
我更新了所有Microsoft软件包,编译器错误消失了。 所以我认为这种编译器错误的一般解决方案包括两个步骤:
答案 5 :(得分: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.
我删除了其中一个项目中的重复引用,但它确实有效。
答案 6 :(得分:0)
对.csproj
进行了以下更改,从而达到了目的:
<PackageReference Include="System.Reflection.Emit">
<Version>4.3.0</Version>
<ExcludeAssets>All</ExcludeAssets>
<IncludeAssets>none</IncludeAssets>
</PackageReference>