问题
After updating Prism NuGet package 7.2.0.1367 to my Xamarin.Forms project, Azure pipelines fails to build. The local build succeeds as does App Center build.
I'm getting the following error in Azure Pipelines:
"/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(2053,5): error MSB4018: Mono.Linker.MarkException: Error processing method: 'System.Void Prism.Navigation.PageNavigationService::ConfigureTabbedPage(Xamarin.Forms.TabbedPage,System.String)' in assembly: 'Prism.Forms.dll' ---> Mono.Cecil.ResolutionException: Failed to resolve System.String[] System.String::Split(System.Char,System.StringSplitOptions) [/Users/vsts/agent/2.155.1/work/1/s/MasterDetailTabbed/MasterDetailTabbed.Android/MasterDetailTabbed.Android.csproj]"
PackageReference:
<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>
You can find a sample project regarding this issue on GitHub. It will demonstrate MasterDetailPage navigation in combination with TabbedPages.
I'm kind of lost here, so any help would be appreciated.
回答1:
Setting the buid configuration to Debug solved the build problem.
variables:
buildConfiguration: 'Debug'
...
steps:
- task: XamarinAndroid@1
inputs:
projectFile: '**/*droid*.csproj'
outputDirectory: '$(outputDirectory)'
configuration: '$(buildConfiguration)'
Probably the Debug build configuration is setting the AndroidLinkMode to None. I didn't properly investigated it but it is most likely, see Linking on Android for more information.
A next step could be Preserving Code.
来源:https://stackoverflow.com/questions/57493240/how-to-fix-error-processing-method-system-void-prism-navigation-pagenavigatio