【发布时间】:2019-12-20 22:12:12
【问题描述】:
将 Prism NuGet 包 7.2.0.1367 更新到我的 Xamarin.Forms 项目后,Azure 管道无法构建。本地构建与 App Center 构建一样成功。
我在 Azure Pipelines 中遇到以下错误:
"/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(2053,5): 错误MSB4018:Mono.Linker.MarkException:错误处理方法: '系统.无效 Prism.Navigation.PageNavigationService::ConfigureTabbedPage(Xamarin.Forms.TabbedPage,System.String)' 在汇编中:'Prism.Forms.dll'---> Mono.Cecil.ResolutionException: 无法解析 System.String[] System.String::Split(System.Char,System.StringSplitOptions) [/Users/vsts/agent/2.155.1/work/1/s/MasterDetailTabbed/MasterDetailTabbed.Android/MasterDetailTabbed.Android.csproj]"
包参考:
<ItemGroup>
<PackageReference Include="Prism.Unity.Forms" Version="7.2.0.1367" />
<PackageReference Include="Xamarin.Forms" Version="4.1.0.673156" />
<PackageReference Include="Xamarin.Essentials" Version="1.2.0" />
</ItemGroup>
您可以在 GitHub 上找到有关此问题的 sample project。它将结合 TabbedPages 演示 MasterDetailPage 导航。
我有点迷失在这里,所以任何帮助将不胜感激。
【问题讨论】:
-
你能显示你的 android csproj 文件吗?
-
@Roubachof,您可以在示例项目中找到 here。感谢您的快速回复。
-
尝试禁用 AndroidUseAapt2
-
另外,当我忘记更新 Xamarin sdk 版本时,它已经发生在我身上(例如 Xamarin.Android 9.3 是最新的)。如果 prism 是使用最新版本构建的,并且 sdk 在 azure 中不是最新的,则可能会导致此类错误。
-
不幸的是,使用 AndroidUseAapt2 或 AndroidLinkMode 玩 arround 并没有成功。可能 Azure 不是最新的?如何轻松确定 Prism 使用哪个 SDK 版本或在 Azure 上获取更新:)?
标签: azure xamarin xamarin.forms prism azure-pipelines