上周,我在构建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,Version = 0.0.0.0,文化=中性,PublicKeyToken ='。也许在Mono for Android配置文件中不存在?
答案 0 :(得分:2)
我从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
答案 1 :(得分:0)
解决方案是从android.csproj文件中删除<RunCodeAnalysis>true</RunCodeAnalysis>
。问题是链接器在软件包准备好链接之前就尝试了链接。