升级到 Visual Studio 16.11.1 后,Xamarin Forms 破坏了 XANS 7028:System.IO.FileNotFoundException:无法加载程序集“Xama

Posted

技术标签:

【中文标题】升级到 Visual Studio 16.11.1 后,Xamarin Forms 破坏了 XANS 7028:System.IO.FileNotFoundException:无法加载程序集“Xamarin.iOS”【英文标题】:After uprading to Visual Studio 16.11.1, Xamarin Forms broke XALNS7028: System.IO.FileNotFoundException: Could not load assembly 'Xamarin.iOS' 【发布时间】:2021-10-24 06:09:09 【问题描述】:

错误

我正在构建一个 Xamarin.Form 项目,当这个错误出现时我正在编译 android 项目,这很讽刺,因为这是一个与 ios 相关的错误。

我做了什么

前一天晚上还好好的。今天早上,我将VS升级到16.11.1。然后我编译了项目。当我编译我的 Android 项目时,会出现此错误。编译其他项目(例如 Forms 项目)工作正常。

我做了什么

我已经在互联网上搜索了解决方案(大多数解决方案都是旧的,但我还是尝试了)。我做了以下事情:

重新启动我的电脑 关闭VS Studio,删除所有项目中的obj、bin和.vs文件夹并重启Visual Studio 清除了一个重新下载的nuget包并重新编译。 升级到最新版本的 Xamarin 和所有最新的 nuget 包 通过 github (git clone) 恢复了我的旧项目(从昨晚开始)并尝试编译。 以上方法均无效

参考文献

这里是完整的错误复制粘贴=>

Severity Code Description Project File Line Suppression State
Error XALNS7028: System.IO.FileNotFoundException: Could not load assembly 'Xamarin.iOS, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065'. Perhaps it doesn't exist in the Mono for Android profile?
File name: 'Xamarin.iOS.dll'
at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(AssemblyNameReference reference, ReaderParameters parameters) in /Users/builder/azdo/_work/1/s/xamarin-android/external/Java.Interop/src/Java.Interop.Tools.Cecil/Java.Interop.Tools.Cecil/DirectoryAssemblyResolver.cs:line 221
at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(AssemblyNameReference reference) in /Users/builder/azdo/_work/1/s/xamarin-android/external/Java.Interop/src/Java.Interop.Tools.Cecil/Java.Interop.Tools.Cecil/DirectoryAssemblyResolver.cs:line 191
at Mono.Cecil.MetadataResolver.Resolve(TypeReference type) in /Users/builder/jenkins/workspace/archive-mono/2020-02/android/release/external/cecil/Mono.Cecil/MetadataResolver.cs:line 110
at Mono.Cecil.TypeReference.Resolve() in /Users/builder/jenkins/workspace/archive-mono/2020-02/android/release/external/cecil/Mono.Cecil/TypeReference.cs:line 276
at Java.Interop.Tools.Cecil.TypeDefinitionCache.Resolve(TypeReference typeReference) in /Users/builder/azdo/work/1/s/xamarin-android/external/Java.Interop/src/Java.Interop.Tools.Cecil/Java.Interop.Tools.Cecil/TypeDefinitionCache.cs:line 20
at Java.Interop.Tools.Cecil.TypeDefinitionRocks.<GetTypeAndBaseTypes>d_5.MoveNext() in /Users/builder/azdo/_work/1/s/xamarin-android/external/Java.Interop/src/Java.Interop.Tools.Cecil/Java.Interop.Tools.Cecil/TypeDefinitionRocks.cs:line 40
at Java.Interop.Tools.Cecil.TypeDefinitionRocks.IsSubclassOf(TypeDefinition type, String typeName, IMetadataResolver resolver) in /Users/builder/azdo/_work/1/s/xamarin-android/external/Java.Interop/src/Java.Interop.Tools.Cecil/Java.Interop.Tools.Cecil/TypeDefinitionRocks.cs:line 94
at MonoDroid.Tuner.FixAbstractMethodsStep.FixAbstractMethodsUnconditional(AssemblyDefinition assembly)
at Xamarin.Android.Tasks.LinkAssembliesNoShrink.RunTask()
at Microsoft.Android.Build.Tasks.AndroidTask.Execute() in /Users/builder/azdo/_work/1/s/xamarin-android/external/xamarin-android-tools/src/Microsoft.Android.Build.BaseTasks/AndroidTask.cs:line 17 0

【问题讨论】:

您可能需要在这里回到第一原则。您是否尝试过创建一个新项目并查看是否仍然出现相同的错误?这个错误似乎与 code 相关 无关,更多的是与 tooling 相关,如果您可以在新项目中重现它,那您就放心了。如果你不能,那么你有一条前进的道路 谢谢我目前正在这样做,但问题似乎仍然存在......我已经向微软报告,似乎越来越多的人看到这个问题,因为我看到了官方票在 MS 文档中 如果您创建票证,您可能只是将其放入您的问题中,或者使用您拥有的信息和链接自行回答,也许不接受它,因为有人可能会解决这个问题。如果它得到解决,那么你知道该怎么做 这是 100% 的错误......一个大错误......因为每个升级到最新 VS 问题的人都会看到这个 为什么我不喜欢? 【参考方案1】:

这听起来很愚蠢,但通过将 Xamarin.iOS 添加到我的参考区域,我在几个小时后开始工作。您可能需要浏览它。 我的位置是:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\Xamarin.iOS\v1.0\Xamarin.iOS.dll

程序集选择区域中不存在 Xamarin.iOS。

【讨论】:

请添加更多详细信息以扩展您的答案,例如工作代码或文档引用。【参考方案2】:

这似乎是Visual Studio的问题,您可以报告如下:

【讨论】:

是的,很多人都看到了这个……让我们看看微软会采取多快的行动! 我也举报了

以上是关于升级到 Visual Studio 16.11.1 后,Xamarin Forms 破坏了 XANS 7028:System.IO.FileNotFoundException:无法加载程序集“Xama的主要内容,如果未能解决你的问题,请参考以下文章

将crm 4插件项目从visual studio 2005升级到visual studio 2010

解读将 Visual C++ 6 项目升级到 Visual Studio 2008 时出现的错误

从 Visual Studio 2017 社区升级到 Pro

升级到 Visual Studio 2015 现在无法在调试中打断点

用 Visual Studio 升级 .NET 项目

如何将 SQL 报告项目 (rptproj) 升级到 Visual Studio 2012?