Skip to content
This repository has been archived by the owner on May 1, 2024. It is now read-only.

Commit

Permalink
Add support for .NET 6 & 7 Android workloads
Browse files Browse the repository at this point in the history
Context: dotnet/android#7261 (comment)

To make .NET 6 builds work from a .NET 7 SDK, we are changing:

    Microsoft.Android.Sdk

To:

    Microsoft.Android.Sdk.net6
    Microsoft.Android.Sdk.net7

To deal with this in Xamarin.Legacy.Sdk, by default it will check for:

    <!--
      if we are not .NET 7 use .NET 6, so legacy or net6.0 will import
      !$([MSBuild]::VersionEquals($(TargetFrameworkVersion), '7.0'))
    -->
    <Import Sdk="Microsoft.Android.Sdk.net6" ... />
    <!--
      import .NET 7 if we are .NET 7
      $([MSBuild]::VersionEquals($(TargetFrameworkVersion), '7.0'))
    -->
    <Import Sdk="Microsoft.Android.Sdk.net7" ... />

To get the old behavior, you can set:

    <UseMicrosoftAndroidSdk>true</UseMicrosoftAndroidSdk>

Or to explicitly select, you can set one of:

    <UseMicrosoftAndroidSdkNet6>true</UseMicrosoftAndroidSdkNet6>
    <UseMicrosoftAndroidSdkNet7>true</UseMicrosoftAndroidSdkNet7>

In a future change, we can make .NET 7 the default, but likely only
after it is released GA.
  • Loading branch information
jonathanpeppers committed Aug 25, 2022
1 parent c3e324c commit 5e6e324
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 1 deletion.
6 changes: 6 additions & 0 deletions samples/Directory.Build.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<Project>
<PropertyGroup>
<!-- Workaround for current .NET 6 -->
<UseMicrosoftAndroidSdk>true</UseMicrosoftAndroidSdk>
</PropertyGroup>
</Project>
16 changes: 15 additions & 1 deletion src/Xamarin.Legacy.Sdk/Sdk/Xamarin.Legacy.Android.targets
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,21 @@
<TargetPlatformIdentifier>Android</TargetPlatformIdentifier>
<AndroidUseIntermediateDesignerFile Condition=" '$(AndroidUseIntermediateDesignerFile)' == '' ">true</AndroidUseIntermediateDesignerFile>
</PropertyGroup>
<Import Sdk="Microsoft.Android.Sdk" Project="../targets/Microsoft.Android.Sdk.DefaultProperties.targets" />
<Import
Condition=" '$(UseMicrosoftAndroidSdk)' == 'true' "
Sdk="Microsoft.Android.Sdk"
Project="../targets/Microsoft.Android.Sdk.DefaultProperties.targets"
/>
<Import
Condition=" '$(UseMicrosoftAndroidSdk)' != 'true' and ('$(UseMicrosoftAndroidSdkNet6)' == 'true' or !$([MSBuild]::VersionEquals($(TargetFrameworkVersion), '7.0')))"
Sdk="Microsoft.Android.Sdk.net6"
Project="../targets/Microsoft.Android.Sdk.DefaultProperties.targets"
/>
<Import
Condition=" '$(UseMicrosoftAndroidSdk)' != 'true' and ('$(UseMicrosoftAndroidSdkNet7)' == 'true' or $([MSBuild]::VersionEquals($(TargetFrameworkVersion), '7.0')))"
Sdk="Microsoft.Android.Sdk.net7"
Project="../targets/Microsoft.Android.Sdk.DefaultProperties.targets"
/>
<Import Project="$(_LegacyExtensionsPath)/Xamarin/Android/Xamarin.Android.CSharp.targets" Condition=" '$(IsBindingProject)' != 'true' and '$(_FixupsNeeded)' == 'true' " />
<Import Project="$(_LegacyExtensionsPath)/Xamarin/Android/Xamarin.Android.Bindings.targets" Condition=" '$(IsBindingProject)' == 'true' and '$(_FixupsNeeded)' == 'true' " />
<Import Project="$(MSBuildExtensionsPath)/Xamarin/Android/Xamarin.Android.CSharp.targets" Condition=" '$(IsBindingProject)' != 'true' and '$(_FixupsNeeded)' != 'true' " />
Expand Down

0 comments on commit 5e6e324

Please sign in to comment.