首页 > 解决方案 > Xamarin.Forms android 项目错误的 AppCenter 构建失败:找不到程序集“Mono.Android”

问题描述

我可以在本地以调试和发布模式构建我的应用程序,但在 Appcenter 上构建失败。当我将我的项目克隆到不同的本地文件夹并运行它时,一切正常,所以似乎只有当我将它部署到 Appcenter 时才会出现问题。我已在我的 Xamarin.Forms android 项目的 Appcenter 构建设置中关闭了所有可能的设置。在 Appcenter 的构建设置中,我选择了 SDK 版本:Xamarin.Android 9.3(我对它的作用有点困惑)并将模式设置为 Release,就像我的本地项目一样。

我最终遇到了一堆错误,但对我来说突出的三个主要错误是:

警告 MSB3245:无法解析此引用。找不到程序集“Mono.Android”。错误 MSB4018:“LinkAssemblies”任务意外失败。错误 MSB4018:System.IO.FileNotFoundException:无法加载程序集 '[App name].Android 错误 MSB4018:文件名:'[App name].Android.dll'

我尝试将目标 android 版本更改为最新版本(Pie 9.0),而不是 Oreo 8.1。我尝试过链接:仅 Sdk 程序集、Sdk 和用户程序集,并且没有(这是链接器属性的所有可能选项)。我最初尝试支持 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 日志中收到错误代码:

错误 CS0246 找不到类型或命名空间名称:

标签: c#xamarinxamarin.formsxamarin.androidvisual-studio-app-center

解决方案


我在共享项目的 AssemblyInfo.cs 文件中引用了 Android 特定的汇编代码。我删除了该代码并从我的共享项目的 csproj 文件中删除了这个 ItemGroup(由于该代码而生成)。之后在 AppCenter 上一切正常。

<ItemGroup>
    <Reference Include="Mono.Android">
        <HintPath>..\..\..\..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\MonoAndroid\v9.0\Mono.Android.dll</HintPath>
    </Reference>
</ItemGroup>

推荐阅读