“LinkAssemblies”任务意外失败 - SB4018: System.IO.FileNotFoundException
Posted
技术标签:
【中文标题】“LinkAssemblies”任务意外失败 - SB4018: System.IO.FileNotFoundException【英文标题】:The "LinkAssemblies" task failed unexpectedly - SB4018: System.IO.FileNotFoundException 【发布时间】:2019-12-30 13:06:36 【问题描述】:上周我在构建 Xamarin.android 以供发布时突然遇到此错误。上次我为发布构建项目时一切正常。
当我选择不链接程序集时,项目会构建,但是当我使用“仅链接 SDK 程序集”时,它会失败。它在我拥有的每个分支上都失败了。我试图建立我的主分支,自上次工作以来没有改变,现在也失败了。
我也尝试删除 bin & obj 并检查 Android 版本和包匹配
Visual Studio 更新了,也重新安装了,也重新安装了 Xamarin 和 Android SDK。
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(2145,5):错误MSB4018:“LinkAssemblies”任务意外失败 /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamrin.Android.Common.targets(2145,5):错误MSB4018:System.IO.FileNotFoundException:无法加载程序集'ProjectName.Droid,版本= 0.0.0.0,文化=中性,PublicKeyToken='。也许它在 Mono for Android 配置文件中不存在?
【问题讨论】:
您是否尝试将链接设置为None
?
然后它确实构建并运行,但这不是一个解决方案。该应用程序会很大
【参考方案1】:
更新
我从 Xamarin.Android 贡献者那里得到了答案,他解释了构建过程发生了什么。 “SignAndroidPackage”MSBuild 目标不再依赖于“Build”目标,因此,我认为,这意味着如果 Android 项目的“DefaultTargets”设置为仅“SignAndroidPackage”,那么该目标将无法找到项目编译的 DLL因为它没有建成。 因此,我认为这就是我们的“LinkAssemblies”任务失败的原因。
为了解决这个错误,我在“SignAndroidPackage”之前添加了“Build”目标。
旧评论
在迁移到 Visual Studio 2019 后,我的项目中遇到了同样的错误。 Visual Studio 2017 和 Visual Studio for Mac 一切正常。因此我推测它可能是一个错误并在 GitHub 上提出了一个问题。
我们都可以在这里关注它:https://github.com/xamarin/xamarin-android/issues/3715
【讨论】:
不应该是评论而不是回答吗? @AlexanderLysenko,我很乐意这样做,但我的名声太低了:) 好的 - 只要确保你有必要的声誉在未来将这些作为 cmets 发布 我一定会的!感谢理解!【参考方案2】:解决方案是从 android.csproj 文件中删除 <RunCodeAnalysis>true</RunCodeAnalysis>
。问题是链接器在包准备好链接之前尝试了链接。
【讨论】:
以上是关于“LinkAssemblies”任务意外失败 - SB4018: System.IO.FileNotFoundException的主要内容,如果未能解决你的问题,请参考以下文章
Monodroid Google Maps v2 - “LinkAssemblies”任务意外失败
“LinkAssemblies”任务意外失败 - SB4018: System.IO.FileNotFoundException
Xamarin Android LinkAssemblies 任务失败