oss*_*too 6 xamarin.ios xamarin.forms .net-standard
我有一个使用.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'.删除其中一个重复的引用.
我已经尝试了很多解决方法,如下所述:
不幸的是,这些建议都不起作用 我还尝试直接将System.Reflection.Emit nuget包添加到Forms和/或iOS项目中.这也不起作用.请注意,最初,System.Reflection.Emit包未被解决方案中的任何内容直接引用.它由以下显式引用的nuget包引入:
最后,我在包控制台中尝试了update-package -reinstall命令,以重新安装iOS项目的所有包.这也不起作用.
- 更新
为了清楚说明,Xamarin Forms或Xamarin iOS项目都不直接引用System.Reflection.Emit.该软件包作为其他nuget软件包的依赖项被引入,只是从安装到Xamarin Forms项目中的软件包中获取.我已经确认Nuget引用的所有依赖项都使用相同的版本.看这些截图:
在我看来,问题(如错误所示)是由Visual Studio安装的旧版本的System.Reflection.Emit.但是,我找不到忽略它的方法,而是使用System.Reflection.Emit的版本.正如我上面所说,我曾尝试在Xamarin.iOS项目中使用project.json文件,并手动忽略,但这不起作用.
有没有人有任何想法?
顺便说一句,我注意到这个错误仍然对Xamarin开放.
oss*_*too 17
由于@DirkWilhem在Xamarin论坛网站上的回答,管理得到了解决.
基本上,.csproj使用其他PackageReference节点将其添加到您的Xamarin iOS项目的文件中:
<PackageReference Include="System.Reflection.Emit">
<Version>4.3.0</Version>
<ExcludeAssets>all</ExcludeAssets>
</PackageReference>
Run Code Online (Sandbox Code Playgroud)
当然,您需要确保首先将nuget包添加到iOS包中.
小智 1
在花了几个小时尝试自己解决这个问题之后,我可能已经找到了解决方案。虽然感觉确实不对,但它已经让我解决了这个问题。
\n\n移动/删除 System.Reflection.Emit.dll 的 Xamarin.iOS 版本已经解决了我的构建问题,并使我能够在设备上部署和运行我的应用程序。我不知道它可能有什么副作用,所以需要更多测试,但我想我分享了 xe2x80x99s 对我有用的内容,这样你也可以测试它。
\n\n我在 macOS Visual Studio 2017 上运行,但切换到 Windows 来尝试修复,首先在 Windows 上修复,然后在 macOS 上尝试相同的方法,效果也很好。
\n\n在 Windows 上,进入以下目录并将 System.Reflection.Emit.dll 移至其他位置(您可以直接删除它,但我想保留一个副本,以防万一这会产生一些不良影响):
\n\nC:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Enterprise\\Common7\\IDE\\ReferenceAssemblies\\Microsoft\\Framework\\Xamarin.iOS\\v1.0\\Facades
\n\n在 mac 上,以下目录有它:
\n\n/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib/mono/Xamarin.iOS/Facades
\n\n就像我说的,感觉不对,但现在它\xe2\x80\x99s让我解决了一个问题,\xe2\x80\x99s让我被封锁了几天,所以愿意继续前进并希望那里\xe2\x80 \x99s没有副作用。我\xe2\x80\x99d 有兴趣了解你的使用体验,以及你未来是否还会遇到任何其他问题。
\n\n我\xe2\x80\x99ll在Xamarin论坛帖子上发布相同的评论(https://forums.xamarin.com/discussion/120814/xamarin-ios-project-cs1703-multiple-assemblies-with-equivalent-identity-have -been-imported)也供将来参考。
\n| 归档时间: |
|
| 查看次数: |
1240 次 |
| 最近记录: |