Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MicrosoftIntune test fails on .NET 9 #8548

Open
jonathanpeppers opened this issue Nov 30, 2023 · 2 comments
Open

MicrosoftIntune test fails on .NET 9 #8548

jonathanpeppers opened this issue Nov 30, 2023 · 2 comments
Assignees
Labels
Area: App+Library Build Issues when building Library projects or Application projects. bug Component does not function as intended.
Milestone

Comments

@jonathanpeppers
Copy link
Member

jonathanpeppers commented Nov 30, 2023

Android application type

.NET Android (net7.0-android, net8.0-android, etc.)

Affected platform version

.NET 9

Description

Context: https://devdiv.visualstudio.com/DevDiv/_build/results?buildId=8749461&view=ms.vss-test-web.build-test-results-tab&runId=89641486&resultId=100000&paneView=attachments
Context: #8366

The MicrosoftIntune test fails in both Debug and Release mode with:

/Users/runner/.nuget/packages/microsoft.intune.maui.essentials.android/10.0.0-beta2/build/netstandard2.0/Microsoft.Intune.Maui.Essentials.android.targets(208,9): /Users/runner/work/1/s/bin/Release/dotnet/packs/Microsoft.NETCore.App.Runtime.Mono.android-x64/9.0.0-alpha.1.23577.7/runtimes/android-x64/native/libSystem.Security.Cryptography.Native.Android.jar doesn't contain /Users/runner/.nuget/packages/ and the mamified library won't be placed in the correct intune directory. This is not expected. [/Users/runner/work/1/a/TestRelease/11-30_21.20.10/temp/MicrosoftIntuneFalse/UnnamedProject.csproj]

Steps to Reproduce

Run the Intune test on .NET 9.

Did you find any workaround?

Will ignore this test for now.

Relevant log output

Intune.zip

@jonathanpeppers jonathanpeppers added Area: App+Library Build Issues when building Library projects or Application projects. needs-triage Issues that need to be assigned. labels Nov 30, 2023
@jonathanpeppers jonathanpeppers added this to the .NET 9 milestone Nov 30, 2023
@jonathanpeppers jonathanpeppers self-assigned this Nov 30, 2023
@jpobst jpobst added bug Component does not function as intended. and removed needs-triage Issues that need to be assigned. labels Nov 30, 2023
jonpryor pushed a commit that referenced this issue Dec 4, 2023
Changes: dotnet/installer@e1fd7d9...42ace91

	% git diff --shortstat e1fd7d9649...42ace91ba7
	 182 files changed, 8428 insertions(+), 2413 deletions(-)

Changes: dotnet/runtime@287c10d...a26802a

	% git diff --shortstat 287c10d253...a26802aa57
	 10852 files changed, 266698 insertions(+), 198289 deletions(-)

Changes: dotnet/emsdk@1999c8c...74e4868

	% git diff --shortstat 1999c8c8ab...74e4868be8
	 39 files changed, 616 insertions(+), 260 deletions(-)

Changes: dotnet/cecil@a112f15...45dd3a7

  * dotnet/cecil@45dd3a7: [main] Update dependencies from dotnet/source-build-reference-packages (dotnet/cecil#116)
  * dotnet/cecil@0b78015: Update dependencies from https://github.com/dotnet/arcade build 20231008.1 (dotnet/cecil#115)
  * dotnet/cecil@64a8874: [main] Update dependencies from dotnet/source-build-reference-packages (dotnet/cecil#114)
  * dotnet/cecil@13d6536: [main] Update dependencies from dotnet/source-build-reference-packages (dotnet/cecil#113)
  * dotnet/cecil@89be445: [main] Update dependencies from dotnet/source-build-reference-packages (dotnet/cecil#112)
  * dotnet/cecil@84f4527: Update dependencies from https://github.com/dotnet/arcade build 20230913.1 (dotnet/cecil#111)

Changes: dotnet/android-tools@08a6990...21de3d7

  * dotnet/android-tools@21de3d7: [build] update $(MSBuildPackageReferenceVersion) to 17.6.3 (dotnet/android-tools#221)

Updates:

  * Microsoft.Dotnet.Sdk.Internal: from 8.0.100-rc.2.23468.1 to 9.0.100-alpha.1.23603.1
  * Microsoft.NETCore.App.Ref: from 8.0.0-rc.2.23466.4 to 9.0.0-alpha.1.23577.7
  * Microsoft.NET.Workload.Emscripten.Current.Manifest-*.Transport: from 8.0.0-rc.2.23463.1 to 9.0.0-alpha.1.23572.3
  * Microsoft.DotNet.Cecil: from 0.11.4-alpha.23461.1 to 0.11.4-alpha.23509.2

~~ Changes to the build ~~

`$(DotNetTargetFrameworkVersion)` is `9.0`, making assemblies like
`Mono.Android.dll` target .NET 9.0, as well as `$(TargetFramework)`
in project templates, etc.

`$(DotNetStableTargetFramework)` is `8.0`, making various bootstrap
tooling, command-line tools, and unit tests target .NET 8.0.

.NET 9 has a new `.binlog` format, requiring
`MSBuild.StructuredLogger` 2.2.100.

`System.CodeDom` now targets 8.0.0, as we moved to 17.8 MSBuild
assemblies from `xamarin-android-tools`.

Add the `dotnet9` and `dotnet9-transport` feeds. The
`dotnet9-transport` feed is used for non-customer-facing packages
like `Microsoft.NET.ILLink`.

`build-linux.yaml` was initially failing to restore `net8.0`
projects because of the order it installed a .NET SDK. It was only
working for `net7.0` projects, because a .NET 7 SDK was
preinstalled on the build machines.

Update `TestSlicerToolVersion` and `dotnet-test-slicer` to
`0.1.0-alpha7`, previously it was failing to discover tests in a
`net8.0` project.

Provision Mono workload manifests for: `net6`, `net7`, `net8`, and
`current` (`net9`).  Call `Utilities.DeleteDirectory()` on these
directories to be sure we are in a clean state.

dotnet/android-tools@21de3d7 is needed to fix various
NU1605 warnings:

	error NU1605: Warning As Error: Detected package downgrade: Microsoft.Build.Framework from 17.5.0 to 17.3.2. Reference the package directly from the project to select a different version.
	error NU1605:  MSBuildDeviceIntegration -> MSBuild.StructuredLogger 2.2.100 -> doh (>= 17.5.0)
	error NU1605:  MSBuildDeviceIntegration -> Microsoft.Build.Framework (>= 17.3.2)

Update workload aliases to include `Microsoft.Android.Sdk.net9` and
`Microsoft.Android.Sdk.net8`.

Remove the .NET 7 Android workload from .NET 9.
Import `Eol.targets` for .NET 6/7 projects.

Update various parameterized tests to target `net8.0` and `net9.0`
appropriately while dropping `net7.0` support.

An initial update to the AOT profile for .NET 9.

Updated `*.apkdesc` files: there were some minor `.apk`
size changes.


~~ `$(AllowSelfContainedWithoutRuntimeIdentifier)` ~~

Context: dotnet/sdk@d21e6bf
Context: d12da3a

@rolfbjarne introduced an "escape hatch" in the .NET 9 SDK for emitting
a build warning for a case that doesn't make sense on mobile.
All mobile apps are self-contained, and we define RIDs by default, so
the error is not needed.

We can also stop setting `$(PublishSelfContained)` to `false`, as
`$(AllowSelfContainedWithoutRuntimeIdentifier)` is sufficient in .NET 9.


~~ Changes to `<ILStrip/>` ~~

Context: dotnet/runtime#90436

  * `$(IntermediateOutputPath)` is now required.

  * `[Output] TrimmedAssemblies` renamed to `UpdatedAssemblies`.

  * Output items shape changed, so now use
    `%(UntrimmedAssemblyFilePath)` and we can `<Copy/>` based on
    `%(ILStripped)`.

The new code is better, so generally these changes seem *good*.


~~ Refactoring ~~

Rename `$(AndroidNet7Version)` to `$(AndroidNetPreviousVersion)` to make
this property more generic for future releases.

Use `@NET_PREVIOUS_VERSION@` as a replacement instead of `@NET7_VERSION@`.


~~ TODO ~~

  * #8548

    The `MicrosoftIntune` test is failing because they have a check for
    == `8.0` that needs to be updated to be >= `8.0`.  This test is
    running on our `release/8.0.1xx` branch, but we can hopefully
    re-enable in main after their next release.

  * A specific case of `dotnet publish -f net8.0-android -r android-arm`
    is failing with:

        error NETSDK1185: The Runtime Pack for FrameworkReference 'Microsoft.Android.Runtime.34.android-arm' was not available. This may be because DisableTransitiveFrameworkReferenceDownloads was set to true.

    This is related to `$(AllowSelfContainedWithoutRuntimeIdentifier)`,
    but I will address in a future PR.  This will likely require .NET 8
    Android workload changes.
@jonpryor
Copy link
Member

jonpryor commented Aug 6, 2024

But wait, it's worse now: dotnet new android project with $(TargetFramework)=net9.0-android and the following additional NuGet packages:

  <ItemGroup>
    <PackageReference Include="Xamarin.AndroidX.AppCompat" Version="1.6.1.6" />
    <PackageReference Include="Microsoft.Intune.Maui.Essentials.android" Version="10.0.0" />
  </ItemGroup>

Microsoft.Intune.Maui.Essentials.android v10.0 is the current latest version of the package.

Build, and it immediately fails to build:

$HOME/.nuget/packages/microsoft.intune.maui.essentials.android/10.0.0/build/netstandard2.0/Microsoft.Intune.Maui.Essentials.android.targets(159,9): error :
Intune currently supports a maximum Xamarin.Android SDK major version of 34. Your major version is 35. Please downgrade your app's target framework.

This check can be disabled by setting the $(IntuneValidateAndroidBuild) MSBuild property to false:

dotnet build -v:diag -p:IntuneValidateAndroidBuild=false

which then fails with the originally reported error:

$HOME.nuget/packages/microsoft.intune.maui.essentials.android/10.0.0/build/netstandard2.0/Microsoft.Intune.Maui.Essentials.android.targets(208,9): error :
…/dotnet/packs/Microsoft.NETCore.App.Runtime.Mono.android-arm/9.0.0-rc.1.24380.7/runtimes/android-arm/native/libSystem.Security.Cryptography.Native.Android.jar
doesn't contain $HOME/.nuget/packages/ and the mamified library won't be placed in the correct intune directory.
This is not expected.

@jonathanpeppers
Copy link
Member Author

@meghandaly is .NET 9 support coming soon for Microsoft.Intune.Maui.Essentials.android?

@jpobst jpobst modified the milestones: .NET 9, .NET 10 Nov 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: App+Library Build Issues when building Library projects or Application projects. bug Component does not function as intended.
Projects
None yet
Development

No branches or pull requests

3 participants