错误 CS1703:已导入具有等效标识的多个程序集 - Xamarin + VSTS
Posted
技术标签:
【中文标题】错误 CS1703:已导入具有等效标识的多个程序集 - Xamarin + VSTS【英文标题】:Error CS1703: Multiple assemblies with equivalent identity have been imported - Xamarin + VSTS 【发布时间】:2017-02-01 06:50:00 【问题描述】:我升级到最新的 Xamarin for Visual Studio 2015(社区版),重新编译了我的项目,签入了一些小的代码更改,我的 VSTS 构建服务器失败并显示以下错误消息:
[error]CSC(0,0): 错误 CS1703: 具有等效的多个程序集 身份已导入:'C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\Monoandroid\v1.0\mscorlib.dll' 和 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscorlib.dll'。消除 重复引用之一。
Internet 搜索通常几乎没有返回有关此问题的详细信息,并且在 VSTS 和 Xamarin 的上下文中根本没有任何有价值的信息。
我认为与该问题相关的唯一代码更改是由 Visual Studio 在项目文件中完成的:
我只为 Android 开发,我在 Xamarin 4.2 上并使用 JDK 8 u101。
知道如何解决这个问题吗?
【问题讨论】:
【参考方案1】:我刚刚解决了这个问题。尝试从解决方案本身的引用文件夹中删除 mscorlib.dll。请参阅下面突出显示的文件夹(参考文件夹)。默认情况下,Xamarin 似乎会在其构建过程中包含 mscorlib.dll。希望对你有帮助:)
【讨论】:
@biplabrout 是的,确实如此。至少对我来说:) 不,它没有用。删除后我开始显示其他错误。资源设计器.cs @biplabrout 您是否仅从该文件夹中删除了 mscorblib.dll 文件?或者您是否删除了除该文件之外的任何其他文件? 也为我工作 谢谢,这帮助我解决了同样的错误,但使用的是 Azure 部署。查看了失败的日志并删除了引用,它解决了问题。【参考方案2】:对.csproj
进行以下更改,成功了:
<PackageReference Include="System.Reflection.Emit">
<Version>4.3.0</Version>
<ExcludeAssets>All</ExcludeAssets>
<IncludeAssets>none</IncludeAssets>
</PackageReference>
【讨论】:
【参考方案3】:我在安装 .net 核心 nuget 时出错,它会显式安装所有 System.* 库。原来我的Microsoft.Net.Compilers
包需要升级,然后这个错误就消失了。
【讨论】:
【参考方案4】:我通过将 7.1 更改回 6.0 为自己解决了这个问题,并且编译再次开始工作。问题只出现在我的编译代理上:
【讨论】:
【参考方案5】:我更新了所有 Microsoft 软件包,编译器错误消失了。 所以我认为这种编译器错误的一般解决方案包括两个步骤:
-
升级涉及的 NuGet 包;
如果第一步还不够,请升级所有 Microsoft NuGet 包。
【讨论】:
【参考方案6】:就我而言,我在其中一个引用项目中有一个包引用“Microsoft.NETCore.Portable.Compatibility”。我删除了它,成功构建了 Android 和 ios 项目。
【讨论】:
【参考方案7】:我也有类似的问题。
以下错误出现在 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.
我删除了我的一个项目中的重复引用并且它有效。
【讨论】:
我有同样的问题,但我使用的是依赖于 System.ComponentModel.Annotations.dll 的 3:rd 方库,所以我无法删除它。以上是关于错误 CS1703:已导入具有等效标识的多个程序集 - Xamarin + VSTS的主要内容,如果未能解决你的问题,请参考以下文章