maui/Directory.Build.targets

7 строки
336 B
Plaintext
Исходник Обычный вид История

<Project>
<Import Condition="'$(SampleProject)' != 'true' and '$(CI)' == 'true'" Project="eng\Git.Build.targets" />
<Import Condition="'$(SampleProject)' != 'true' and '$(CI)' == 'true' " Project="eng\Version.targets" />
Use .NET 6 AndroidX packages & consolidate versions (#13879) Bump to Microsoft.Android.Sdk 11.0.200.118. This is needed for a fix to support net6.0-android NuGet packages. We have new AndroidX packages: <PackageReference Include="Xamarin.AndroidX.AppCompat" Version="1.2.0.7-net6preview01" /> <PackageReference Include="Xamarin.Google.Android.Material" Version="1.3.0.1-net6preview01" /> These are available on the same feed we have the iOS/Android runtime packs for .NET 6: <add key="xamarin" value="https://pkgs.dev.azure.com/azure-public/vside/_packaging/xamarin-impl/nuget/v3/index.json" /> These packs support both Xamarin.Android & .NET 6 because they contain both sets of assemblies, such as: * `lib/monoandroid90/Xamarin.AndroidX.*.dll` * `lib/net6.0-android/Xamarin.AndroidX.*.dll` To consolidate our AndroidX package versions, we can a new MSBuild pattern for declaring NuGet package versions that dotnet/project-system uses: https://github.com/dotnet/project-system/blob/accdee5926eb32f51ee503cba355cb1f4f991459/Directory.Build.targets#L3 https://github.com/dotnet/project-system/blob/accdee5926eb32f51ee503cba355cb1f4f991459/build/import/Packages.targets 1. List packages in `.csproj` files as they are needed. But leave off `%(Version)` completely. 2. A `Directory.Build.targets` somewhere does: `<PackageReference Update="YourPackage" Version="1.0.0" />` This allows you to put the version in one place, and you don't need to check platforms or anything, because the `Update` doesn't do anything if the `.csproj` file isn't using that package. We could do this pattern across the whole Maui repo, but I just set this up for the `AndroidX` and `Microsoft.Extensions` packages for now. ~~ .NET 6 Linker ~~ Since we are using .NET 6 AndroidX packages, the following workaround is no longer needed, so I removed them: <PropertyGroup> <_DotNetPackageVersion>6.0.0-preview.2.21110.7</_DotNetPackageVersion> </PropertyGroup> <ItemGroup> <PackageReference Include="System.CodeDom" Version="$(_DotNetPackageVersion)" /> <PackageReference Include="System.Diagnostics.EventLog" Version="$(_DotNetPackageVersion)" /> <PackageReference Include="System.Diagnostics.PerformanceCounter" Version="$(_DotNetPackageVersion)" /> <PackageReference Include="System.IO.Ports" Version="$(_DotNetPackageVersion)" /> <PackageReference Include="System.Security.Permissions" Version="$(_DotNetPackageVersion)" /> <PackageReference Include="System.Threading.AccessControl" Version="$(_DotNetPackageVersion)" /> </ItemGroup> Previously, the AndroidX packages were Xamarin.Android libraries, and they would cause the linker to crash in `Release` builds: ILLink : error IL1012: IL Linker has encountered an unexpected error. Please report the issue at https://github.com/mono/linker/issues Fatal error in IL Linker Unhandled exception. Mono.Linker.InternalErrorException: Step 'LoadReferencesStep' failed when processing assembly 'Maui.Controls.Sample.SingleProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. ---> Mono.Linker.LinkerFatalErrorException: ILLink: error IL1010: Assembly 'Maui.Controls.Sample.SingleProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' cannot be loaded due to failure in processing 'Microsoft.Maui, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' reference ---> Mono.Linker.LinkerFatalErrorException: ILLink: error IL1010: Assembly 'Microsoft.Maui, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' cannot be loaded due to failure in processing 'Xamarin.AndroidX.AppCompat, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' reference ---> Mono.Linker.LinkerFatalErrorException: ILLink: error IL1010: Assembly 'Xamarin.AndroidX.AppCompat, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' cannot be loaded due to failure in processing 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' reference ---> Mono.Linker.LinkerFatalErrorException: ILLink: error IL1009: Assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' reference 'System.Security.Permissions, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' could not be resolved ---> Mono.Cecil.AssemblyResolutionException: Failed to resolve assembly: 'System.Security.Permissions, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' ---> System.IO.FileNotFoundException: Unable to find 'System.Security.Permissions.dll' or 'System.Security.Permissions.exe' file ~~ AndroidX obsoleted FragmentStatePagerAdapter ~~ Initially I got several warnings (that became errors), such as: error CS0618: 'FragmentStatePagerAdapter' is obsolete... I don't know what should be done here, so I ignored the warning in the two files that have a problem for now: #pragma warning disable 618
2021-03-02 02:25:45 +03:00
<Import Project="eng\AndroidX.targets" />
<Import Project="eng\Microsoft.Extensions.targets" />
</Project>