错误 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的主要内容,如果未能解决你的问题,请参考以下文章

“程序集相同的简单名称已被导入”错误

VSTO:无法安装此应用程序,因为已安装具有相同标识的应用程序

ASP.NET 标识 - 不支持每种类型的多个对象集

找到具有给定标识符的多个行

休眠错误:具有相同标识符值的不同对象已与会话关联

具有相同标识符值的不同对象已与保存时的会话错误相关联[重复]