"LinkAssemblies" 任务意外失败 - SB4018:System.IO.FileNotFoundException

The "LinkAssemblies" task failed unexpectedly - SB4018: System.IO.FileNotFoundException

上周我在为发布构建 Xamarin.Android 时突然遇到这个错误。上次我为发布构建项目时一切正常。

当我选择 link 无程序集时,项目会构建,但是当我使用“Link 仅 SDK 程序集”时,它会失败。它在我拥有的每个分支上都失败了。我试图建立我的主分支,自从我上次工作之前就没有改变过,现在也失败了。

我还尝试删除 bin 和 obj 并检查了 Android 个版本并且包匹配

Visual Studio更新了,也重装了,也重装了Xamarin和Android SDK。

/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(2145,5): error MSB4018: The "LinkAssemblies" task failed unexpectedly /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamrin.Android.Common.targets(2145,5): error MSB4018: System.IO.FileNotFoundException: Could not load assembly ‘ProjectName.Droid, Version=0.0.0.0, Culture=neutral, PublicKeyToken='. Perhaps it doesn't exist in the Mono for Android profile?

更新

我从一位 Xamarin.Android 贡献者那里得到了答案,他解释了构建过程中发生了什么。 "SignAndroidPackage" MSBuild 目标不再依赖于 "Build" 目标,因此,我认为,如果 Android 项目将 "DefaultTargets" 设置为仅 "SignAndroidPackage",那么这意味着target 将无法找到项目编译的 DLL,因为它尚未构建。 因此我假设这就是我们 "LinkAssemblies" 任务失败的原因。

为了解决错误,我在 "SignAndroidPackage" 之前添加了 "Build" 目标。

旧评论

迁移到 Visual Studio 2019 后,我在我的项目中遇到了同样的错误。 2017 年 Visual Studio 和 Mac 的 Visual Studio 一切都很好。因此我推测这可能是一个错误并在 GitHub.

上提出了一个问题

我们可能都关注这里:https://github.com/xamarin/xamarin-android/issues/3715

解决方案是从 android.csproj 文件中删除 <RunCodeAnalysis>true</RunCodeAnalysis>。问题是链接器在包准备好链接之前就尝试了链接。