Xamarin.Forms 安卓项目的应用中心生成失败错误:找不到程序集"Mono.Android"



我可以在本地进行调试和发布模式构建我的应用程序,但构建在AppCenter上失败。当我将proe推到其他本地文件夹并运行它时,一切都起作用,因此仅当我将其部署到AppCenter时才有问题。我已经关闭了Xamarin.Forms Android项目的AppCenter Build设置中所有可能的设置。在AppCenter中的构建设置中,我选择了SDK版本:Xamarin.android 9.3(我对此对此有些困惑(,并设置了像我本地项目一样发布的模式。

我最终遇到了一堆错误,但在我身上脱颖而出的三个错误是:

警告MSB3245:无法解决此参考。无法找到组件" mono.android"。错误MSB4018:" LinkAssemblies"任务意外失败。错误msb4018:system.io.io.filenotfoundException:无法加载汇编'[app name] .android错误msb4018:文件名:'[app name] .android.dll'

我尝试将目标Android版本更改为最新的(PIE 9.0(,而不是Oreo 8.1。我尝试过链接:仅SDK组件,SDK和用户程序集,而无(这是Linker属性的所有可能选项(。我尝试过支持Armeabi-47,x86最初尝试添加ARM64和X86_64。

<PackageReference Include="CarouselView.FormsPlugin" Version="5.2.0" />
<PackageReference Include="Microsoft.AppCenter.Analytics" Version="2.1.1" />
<PackageReference Include="Microsoft.AppCenter.Crashes" Version="2.1.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.2.6" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.2.6" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.2" />
<PackageReference Include="Plugin.Permissions" Version="3.0.0.12" />
<PackageReference Include="PropertyChanged.Fody" Version="3.0.1" />
<PackageReference Include="Rg.Plugins.Popup" Version="1.1.5.188" />
<PackageReference Include="Xam.Plugin.Media" Version="4.0.1.5" />
<PackageReference Include="Xamarin.Forms" Version="4.1.0.618606" />  
<PackageReference Include="Xamarin.Essentials" Version="1.2.0" />  
<PackageReference Include="ZXing.Net.Mobile" Version="2.4.1" />  
<PackageReference Include="ZXing.Net.Mobile.Forms" Version="2.4.1" />

预期:在AppCenter中构建就像在我清洁的本地机器上一样。

实际:我在AppCenter日志中收到错误代码:

  • 错误MSB4018:" LinkAssemblies"任务意外失败。

  • 错误msb4018:system.io.filenotfoundexception:无法加载
    汇编[app name] .android

  • 错误msb4018:文件名:'[app name] .android.dll'
  • 错误msb4018:atjava.interop.tools.cecil.directoryAssemblyResolver.resolve
  • 错误msb4018:在xamarin.android.tasks.linkassemblies.execute
  • 警告MSB3245:无法解决此参考。无法找到组件" mono.android"。

错误CS0246无法找到类型或名称名称:

  • 'usefeatureattribute','usefeature','必需','android'

我在我的共享项目的assemblyInfo.cs文件中引用了android特定的汇编代码。我删除了该代码,并从我的共享项目的CSPROJ文件中删除了该项目组(由于该代码而生成(。之后,一切都很好。

<ItemGroup>
    <Reference Include="Mono.Android">
        <HintPath>................Program Files (x86)Microsoft Visual Studio2019ProfessionalCommon7IDEReferenceAssembliesMicrosoftFrameworkMonoAndroidv9.0Mono.Android.dll</HintPath>
    </Reference>
</ItemGroup>

最新更新