相关疑难解决方法(0)

Xamarin.iOS项目:CS1703:已导入具有等效标识的多个程序集

我有一个使用.NET Standard 2.0的跨平台(iOS和Android)Xamarin解决方案.该解决方案由Visual Studio 2017构建(我已尝试过当前版本和预览版本).Forms和Android项目构建良好.但是,iOS无法构建,出现以下错误:

1> CSC:错误CS1703:已导入具有等效标识的多个程序集:'C:\ Users \newuser.nuget\packages\system.reflection.emit\4.3.0\ref \netstandard1.1\System.Reflection.Emit. dll'和'C:\ Program Files(x86)\ Microsoft Visual Studio\Preview\Enterprise\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\Xamarin.iOS\v1.0\Facades\System.Reflection.Emit.dll'.删除其中一个重复的引用.

我已经尝试了很多解决方法,如下所述:

oren.codes

www.hanselman.com

github.com/NuGet

不幸的是,这些建议都不起作用 我还尝试直接将System.Reflection.Emit nuget包添加到Forms和/或iOS项目中.这也不起作用.请注意,最初,System.Reflection.Emit包未被解决方案中的任何内容直接引用.它由以下显式引用的nuget包引入:

  • Acr.DeviceInfo(5.0.5)
  • akavache(6.0.0-alpha0038)
  • AutoMapper(6.2.2)
  • Microsoft.Identity.Client(1.1.1-preview0040)
  • Newtonsoft.Json(10.0.3)

最后,我在包控制台中尝试了update-package -reinstall命令,以重新安装iOS项目的所有包.这也不起作用.

- 更新

为了清楚说明,Xamarin Forms或Xamarin iOS项目都不直接引用System.Reflection.Emit.该软件包作为其他nuget软件包的依赖项被引入,只是从安装到Xamarin Forms项目中的软件包中获取.我已经确认Nuget引用的所有依赖项都使用相同的版本.看这些截图:

从Visual Studio引用的Emit依赖项 扩展引用的Emit依赖项

在我看来,问题(如错误所示)是由Visual Studio安装的旧版本的System.Reflection.Emit.但是,我找不到忽略它的方法,而是使用System.Reflection.Emit的版本.正如我上面所说,我曾尝试在Xamarin.iOS项目中使用project.json文件,并手动忽略,但这不起作用.

有没有人有任何想法?

顺便说一句,我注意到这个错误仍然对Xamarin开放.

Xamarin Bugs

xamarin.ios xamarin.forms .net-standard

6
推荐指数
2
解决办法
1240
查看次数

标签 统计

.net-standard ×1

xamarin.forms ×1

xamarin.ios ×1