Skip to content

Migrate nuget-msi-convert to v5.yml (WiX 6)#25887

Open
jonathanpeppers wants to merge 1 commit into
net11.0from
jonathanpeppers-nuget-msi-convert-v5
Open

Migrate nuget-msi-convert to v5.yml (WiX 6)#25887
jonathanpeppers wants to merge 1 commit into
net11.0from
jonathanpeppers-nuget-msi-convert-v5

Conversation

@jonathanpeppers

Copy link
Copy Markdown
Member

Equivalent of dotnet/android#11743 for dotnet/macios.

Changes

  • Switches the nuget-msi-convert template reference from nuget-msi-convert/job/v4.yml@yaml-templates to nuget-msi-convert/job/v5.yml@yaml-templates in tools/devops/automation/templates/release/vs-insertion-prep.yml.
  • Updates the corresponding comment from v4.yml to v5.yml.

What changed in v5 vs v4 (for reviewer context)

  • WiX packages bumped to 6.0.3-dotnet.4 (was WiX 3)
  • swixBuildPackageVersion: 1.1.922 (was 1.1.392)
  • arcadePackageVersion: 11.0.0-beta.26325.102 (was 9.0.0-beta.24509.3)
  • arcadeTasksFxVersion: net (was netcoreapp3.1)
  • dotNetSdkVersion: 10.0.x (was 9.0.x — required, arcade 11.x tasks are net10.0)
  • convert.proj now built with DotNetCoreCLI@2 / dotnet msbuild (Core MSBuild) instead of MSBuild@1 desktop msbuild, because arcade 11.x workload tasks ship only tools/net/ (.NETCoreApp v10). SwixBuild still uses desktop msbuild via the internal _FindMSBuild target.

All new parameters have sensible defaults in v5.yml, so dotnet/macios does not need to override any of them.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@jonathanpeppers jonathanpeppers force-pushed the jonathanpeppers-nuget-msi-convert-v5 branch from ee1b341 to 19f39f0 Compare June 30, 2026 21:15
@jonathanpeppers jonathanpeppers changed the base branch from main to net11.0 June 30, 2026 21:15
@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

Copy link
Copy Markdown
Collaborator

✅ [CI Build #19f39f0] Prepare .NET Release succeeded ✅

📦 Published NuGet packages (32 packages)

iOS

  • Microsoft.iOS.Ref.net11.0_26.5.26.5.11795-ci.release-test-nuget-msi-convert-v5.nupkg
  • Microsoft.iOS.Runtime.ios-arm64.net11.0_26.5.26.5.11795-ci.release-test-nuget-msi-convert-v5.nupkg
  • Microsoft.iOS.Runtime.ios.net11.0_26.5.26.5.11795-ci.release-test-nuget-msi-convert-v5.nupkg
  • Microsoft.iOS.Runtime.iossimulator-arm64.net11.0_26.5.26.5.11795-ci.release-test-nuget-msi-convert-v5.nupkg
  • Microsoft.iOS.Runtime.iossimulator-x64.net11.0_26.5.26.5.11795-ci.release-test-nuget-msi-convert-v5.nupkg
  • Microsoft.iOS.Sdk.net11.0_26.5.26.5.11795-ci.release-test-nuget-msi-convert-v5.nupkg
  • Microsoft.iOS.Templates.26.5.11795-ci.release-test-nuget-msi-convert-v5.nupkg
  • Microsoft.iOS.Windows.Sdk.net11.0_26.5.26.5.11795-ci.release-test-nuget-msi-convert-v5.nupkg
  • Microsoft.NET.Sdk.iOS.Manifest-11.0.100-preview.6.26.5.11795-ci.release-test-nuget-msi-convert-v5.nupkg

MacCatalyst

  • Microsoft.MacCatalyst.Ref.net11.0_26.5.26.5.11795-ci.release-test-nuget-msi-convert-v5.nupkg
  • Microsoft.MacCatalyst.Runtime.maccatalyst-arm64.net11.0_26.5.26.5.11795-ci.release-test-nuget-msi-convert-v5.nupkg
  • Microsoft.MacCatalyst.Runtime.maccatalyst-x64.net11.0_26.5.26.5.11795-ci.release-test-nuget-msi-convert-v5.nupkg
  • Microsoft.MacCatalyst.Runtime.maccatalyst.net11.0_26.5.26.5.11795-ci.release-test-nuget-msi-convert-v5.nupkg
  • Microsoft.MacCatalyst.Sdk.net11.0_26.5.26.5.11795-ci.release-test-nuget-msi-convert-v5.nupkg
  • Microsoft.MacCatalyst.Templates.26.5.11795-ci.release-test-nuget-msi-convert-v5.nupkg
  • Microsoft.NET.Sdk.MacCatalyst.Manifest-11.0.100-preview.6.26.5.11795-ci.release-test-nuget-msi-convert-v5.nupkg

macOS

  • Microsoft.macOS.Ref.net11.0_26.5.26.5.11795-ci.release-test-nuget-msi-convert-v5.nupkg
  • Microsoft.macOS.Runtime.osx-arm64.net11.0_26.5.26.5.11795-ci.release-test-nuget-msi-convert-v5.nupkg
  • Microsoft.macOS.Runtime.osx-x64.net11.0_26.5.26.5.11795-ci.release-test-nuget-msi-convert-v5.nupkg
  • Microsoft.macOS.Runtime.osx.net11.0_26.5.26.5.11795-ci.release-test-nuget-msi-convert-v5.nupkg
  • Microsoft.macOS.Sdk.net11.0_26.5.26.5.11795-ci.release-test-nuget-msi-convert-v5.nupkg
  • Microsoft.macOS.Templates.26.5.11795-ci.release-test-nuget-msi-convert-v5.nupkg
  • Microsoft.NET.Sdk.macOS.Manifest-11.0.100-preview.6.26.5.11795-ci.release-test-nuget-msi-convert-v5.nupkg

tvOS

  • Microsoft.NET.Sdk.tvOS.Manifest-11.0.100-preview.6.26.5.11795-ci.release-test-nuget-msi-convert-v5.nupkg
  • Microsoft.tvOS.Ref.net11.0_26.5.26.5.11795-ci.release-test-nuget-msi-convert-v5.nupkg
  • Microsoft.tvOS.Runtime.tvos-arm64.net11.0_26.5.26.5.11795-ci.release-test-nuget-msi-convert-v5.nupkg
  • Microsoft.tvOS.Runtime.tvos.net11.0_26.5.26.5.11795-ci.release-test-nuget-msi-convert-v5.nupkg
  • Microsoft.tvOS.Runtime.tvossimulator-arm64.net11.0_26.5.26.5.11795-ci.release-test-nuget-msi-convert-v5.nupkg
  • Microsoft.tvOS.Runtime.tvossimulator-x64.net11.0_26.5.26.5.11795-ci.release-test-nuget-msi-convert-v5.nupkg
  • Microsoft.tvOS.Sdk.net11.0_26.5.26.5.11795-ci.release-test-nuget-msi-convert-v5.nupkg
  • Microsoft.tvOS.Templates.26.5.11795-ci.release-test-nuget-msi-convert-v5.nupkg

Other

  • Sharpie.Bind.Tool.26.6.0.399-ci.release-test-nuget-msi-convert-v5.nupkg

Pipeline on Agent
Hash: 19f39f004498850f0e7441b6917de944855bf4a4 [PR build]

</ResolvedFileToPublish>
</ItemGroup>

<ItemGroup Condition="!('$(PrepareAssemblies)' == 'true' And '$(PostProcessAssemblies)' == 'true')">

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like something went wrong when creating the branch/PR here? There's 175 modified files and a couple of what looks like unrelated commits.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@jonathanpeppers jonathanpeppers marked this pull request as ready for review July 1, 2026 12:52
@jonathanpeppers jonathanpeppers requested a review from mauroa as a code owner July 1, 2026 12:52
Copilot AI review requested due to automatic review settings July 1, 2026 12:52
Equivalent of dotnet/android#11743 for dotnet/macios.

Switches the nuget-msi-convert template reference from
nuget-msi-convert/job/v4.yml@yaml-templates to v5.yml@yaml-templates,
and updates the corresponding comment.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@jonathanpeppers jonathanpeppers force-pushed the jonathanpeppers-nuget-msi-convert-v5 branch from 323f3dd to dde8d06 Compare July 1, 2026 12:54

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates build/release infrastructure and linker tooling, and also extends Sharpie/xtro nullability analysis to understand nullability inside block/delegate parameter type arguments.

Changes:

  • Migrate the release pipeline stage to nuget-msi-convert/job/v5.yml (WiX 6).
  • Extend Sharpie binding generation and xtro checks to track/apply nullable annotations for block/delegate inner parameters.
  • Add “post-processing” support to the assembly-preparer pipeline and wire it into MSBuild, updating xtro suppression baselines accordingly.

Reviewed changes

Copilot reviewed 1 out of 1 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
tools/devops/automation/templates/release/vs-insertion-prep.yml Switch nuget→msi conversion template v4→v5; update related comment.
tools/sharpie/Sharpie.Bind/TypeBinder.cs Propagate clang nullability annotations into generated delegate type arguments (T?).
tools/sharpie/Sharpie.Bind/Massagers/CustomDelegateMassager.cs Unwrap T? back to T (preserving annotations) so [NullAllowed] can be applied on delegate parameters.
tools/sharpie/Sharpie.Bind/BindingGenerator.cs Unwrap nullable delegate type args when creating named delegates from block pointers.
tests/sharpie/Tests/Nullability.macosx.cs Update test to expect nullable delegate type argument (Action<NSObject?>).
tests/sharpie/Tests/Nullability.iphoneos.cs Update test to expect nullable delegate type argument (Action<NSObject?>).
tests/xtro-sharpie/xtro-sharpie/NullabilityCheck.cs Add analysis for block/delegate inner parameter nullability vs NullableAttribute.
tests/xtro-sharpie/api-annotations-dotnet/tvOS-VideoSubscriberAccount.ignore Add initial suppressions for block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/tvOS-UIKit.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/tvOS-TVServices.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/tvOS-ReplayKit.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/tvOS-Photos.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/tvOS-MediaPlayer.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/tvOS-HomeKit.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/tvOS-GameKit.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/tvOS-Foundation.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/tvOS-AVKit.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/tvOS-AVFoundation.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/macOS-VideoSubscriberAccount.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/macOS-ThreadNetwork.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/macOS-StoreKit.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/macOS-Speech.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/macOS-SharedWithYou.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/macOS-ServiceManagement.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/macOS-SensitiveContentAnalysis.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/macOS-ScreenCaptureKit.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/macOS-SafariServices.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/macOS-ReplayKit.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/macOS-QuickLookThumbnailing.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/macOS-PhotosUI.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/macOS-Photos.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/macOS-PassKit.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/macOS-NetworkExtension.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/macOS-MailKit.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/macOS-LocalAuthentication.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/macOS-Intents.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/macOS-GameKit.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/macOS-Foundation.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/macOS-FileProvider.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/macOS-EventKit.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/macOS-CoreSpotlight.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/macOS-CoreData.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/macOS-CoreAudioKit.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/macOS-CloudKit.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/macOS-ClassKit.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/macOS-AVFoundation.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/macOS-AuthenticationServices.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/macOS-AppKit.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-UIKit.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-ThreadNetwork.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-StoreKit.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-Speech.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-SharedWithYou.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-ServiceManagement.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-SensorKit.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-SensitiveContentAnalysis.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-ScreenCaptureKit.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-SafariServices.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-ReplayKit.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-QuickLookThumbnailing.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-Photos.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-PassKit.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-NetworkExtension.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-Messages.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-MediaPlayer.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-LocalAuthentication.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-Intents.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-IdentityLookup.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-GameKit.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-GameController.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-Foundation.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-EventKit.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-CoreSpotlight.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-CoreNFC.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-CoreMotion.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-CoreData.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-CoreAudioKit.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-CloudKit.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-ClassKit.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-CallKit.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-AVFoundation.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-AuthenticationServices.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-AppClip.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-VideoSubscriberAccount.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-UIKit.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-ThreadNetwork.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-StoreKit.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-Speech.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-SharedWithYou.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-SensorKit.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-SensitiveContentAnalysis.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-SafariServices.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-ReplayKit.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-QuickLookThumbnailing.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-PushToTalk.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-Photos.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-PassKit.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-NetworkExtension.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-Messages.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-MediaPlayer.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-LocalAuthentication.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-IntentsUI.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-Intents.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-IdentityLookup.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-GameKit.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-GameController.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-Foundation.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-EventKit.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-CoreSpotlight.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-CoreNFC.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-CoreMotion.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-CoreLocation.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-CoreData.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-CoreAudioKit.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-CloudKit.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-ClassKit.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-CarPlay.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-CallKit.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-AVFoundation.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-AuthenticationServices.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-ARKit.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-AppClip.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/common-Vision.ignore Remove trailing whitespace-only line.
tests/xtro-sharpie/api-annotations-dotnet/common-UserNotifications.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/common-UIKit.ignore Remove trailing whitespace-only line.
tests/xtro-sharpie/api-annotations-dotnet/common-ShazamKit.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/common-SharedWithYou.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/common-ReplayKit.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/common-Photos.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/common-NetworkExtension.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/common-NaturalLanguage.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/common-MultipeerConnectivity.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/common-LinkPresentation.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/common-Intents.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/common-Foundation.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/common-DeviceCheck.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/common-CryptoTokenKit.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/common-CoreML.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/common-CoreLocation.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/common-CoreData.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/common-Cinematic.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/common-BackgroundAssets.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/common-AuthenticationServices.ignore Add initial suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/common-AudioToolbox.ignore Add suppressions for new block inner-parameter nullability findings.
tests/xtro-sharpie/api-annotations-dotnet/common-Accelerate.ignore Remove trailing whitespace-only line.
tools/linker/MonoTouch.Tuner/ListExportedSymbols.cs Make step usable in ASSEMBLY_PREPARER, and adjust library variations construction.
tools/linker/RemoveUserResourcesSubStep.cs Make step usable in ASSEMBLY_PREPARER and refactor prefix handling.
tools/dotnet-linker/Steps/InlineClassGetHandleStep.cs Add step activation condition based on config mode.
tools/dotnet-linker/Steps/GenerateReferencesStep.cs Use StringUtils.IsNullOrEmpty for nullable-aware checks.
tools/dotnet-linker/Steps/ExtractBindingLibrariesStep.cs Use PathUtils.AbsoluteToRelative to avoid unavailable APIs in some TFMs.
tools/dotnet-linker/Steps/ComputeAOTArguments.cs Use correct assembly paths depending on ASSEMBLY_PREPARER build.
tools/dotnet-linker/Steps/RegistrarStep.cs Avoid FilterTrimmedApi in ASSEMBLY_PREPARER builds.
tools/dotnet-linker/LinkerConfiguration.cs Always create CompilerFlags; ensure MSBuild items directory exists before writing.
tools/common/Application.cs Add explicit post-processing state for ASSEMBLY_PREPARER builds.
tools/common/Assembly.cs Remove ASSEMBLY_PREPARER-only exception/placeholder logic when setting IsFrameworkAssembly.
tools/common/StaticRegistrar.cs Enable UnmanagedCallersOnly trampoline generation outside ASSEMBLY_PREPARER guard (still gated by !LEGACY_TOOLS).
tools/assembly-preparer/AssemblyPreparer.cs Add PostProcess pipeline mirroring ILLink custom steps order after sweep/output.
tools/assembly-preparer/SaveAssembliesStep.cs Copy unchanged assemblies to output during post-processing to keep AOT inputs co-located.
tools/assembly-preparer/CollectFieldsStep.cs Populate both FieldSymbols and ExportedFields annotations (for InlineDlfcn/ListExportedSymbols).
tools/assembly-preparer/PopulateApplicationAssembliesStep.cs New step: populate Application.Assemblies after saving assemblies so later steps find correct paths.
tools/assembly-preparer/assembly-preparer.csproj Include additional linker steps and common types needed for post-processing pipeline.
msbuild/Xamarin.MacDev.Tasks/Tasks/PrepareAssemblies.cs Add PostProcessing mode and emit a fallback localized error if the tool fails silently.
msbuild/Xamarin.Localization.MSBuild/MSBStrings.resx Add localized string E0192 for silent PrepareAssemblies failures.
msbuild/Xamarin.Shared/Xamarin.Shared.targets Add PostProcessAssemblies property and a post-ILLink post-processing target using PrepareAssemblies task.
dotnet/targets/Xamarin.Shared.Sdk.targets Gate ILLink custom steps when post-processing is enabled to avoid double-running steps.

Comment on lines 76 to 78
# Check - "xamarin-macios (Prepare Release Convert NuGet to MSI)"
- template: nuget-msi-convert/job/v4.yml@yaml-templates
- template: nuget-msi-convert/job/v5.yml@yaml-templates
parameters:
@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@jonathanpeppers

Copy link
Copy Markdown
Member Author

Verified the WiX 6 output from validation build 14535009 — all MSI-related stages succeeded (Restore convert.proj, Convert NuGet to MSI, Generate MSIs and VS Manifests, Sign Archives, verify signed msi content).

Signed MSI inventory (from SignVerify/SignResults.xml):

Type Count
msi-nupkgs (per-workload nupkgs wrapping an MSI, host × target arch) 93
manifests-packs (raw workload manifest MSIs) 81
Total signed MSI artifacts 174

All 4 workload manifests (iOS / MacCatalyst / macOS / tvOS) × arm64/x64/x86 are produced, plus per-runtime/SDK/Ref/Templates/Windows.Sdk MSIs — same shape as v4.

Cracked open one signed MSI (Microsoft.NET.Sdk.iOS.Manifest-11.0.100-preview.6.Msi.x64.*.nupkg → inner .msi):

Creating Application:  WiX Dev Build (6.0.3.4)   ← WiX 6 confirmed
Template:              x64;1033
ProductName:           Microsoft.NET.Sdk.iOS.Manifest-11.0.100-preview.6 (x64)
ProductVersion:        26.5.11795
Manufacturer:          Microsoft Corporation
ProductCode:           {D8E57FB0-92EF-4883-B0FC-E57B538AEF0F}
UpgradeCode:           {14F366F0-FB7D-4C9D-9B25-B947553CEB17}

signtool verify /paSuccessfully verified (Microsoft ID Verified Code Signing PCA 2024 → Microsoft Root CA 2011).

Toolchain proof from convert.binlog — resolved package paths confirm the new v5 dependency set:

  • microsoft.wixtoolset.ui.wixext\6.0.3-dotnet.4\wixext6\
  • microsoft.wixtoolset.util.wixext\6.0.3-dotnet.4\
  • microsoft.wixtoolset.dependency.wixext\6.0.3-dotnet.4\
  • microsoft.wixtoolset.heat\ (new — replaces the old in-tree heat)

v5.yml produces the same set of MSIs as v4.yml, they are built by WiX 6.0.3.4 with valid ProductName / ProductVersion / UpgradeCode metadata, and are properly Authenticode-signed. LGTM 👍

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

Copy link
Copy Markdown
Collaborator

✅ [PR Build #dde8d06] Build passed (Build packages) ✅

Pipeline on Agent
Hash: dde8d06ac60ac2520243d6253520b712cfbb2c66 [PR build]

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

Copy link
Copy Markdown
Collaborator

✅ [PR Build #dde8d06] Build passed (Detect API changes) ✅

Pipeline on Agent
Hash: dde8d06ac60ac2520243d6253520b712cfbb2c66 [PR build]

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

Copy link
Copy Markdown
Collaborator

✅ [PR Build #dde8d06] Build passed (Build macOS tests) ✅

Pipeline on Agent
Hash: dde8d06ac60ac2520243d6253520b712cfbb2c66 [PR build]

@vs-mobiletools-engineering-service2

Copy link
Copy Markdown
Collaborator

✅ API diff for current PR / commit

NET (empty diffs)

✅ API diff vs stable

NET (empty diffs)

ℹ️ Generator diff

Generator Diff: vsdrops (html) vsdrops (raw diff) gist (raw diff) - Please review changes)

Pipeline on Agent
Hash: dde8d06ac60ac2520243d6253520b712cfbb2c66 [PR build]

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

Copy link
Copy Markdown
Collaborator

🔥 [CI Build #dde8d06] Test results 🔥

Test results

❌ Tests failed on VSTS: test results

1 tests crashed, 4 tests failed, 200 tests passed.

Failures

❌ dotnettests tests (MacCatalyst)

1 tests failed, 0 tests passed.

Failed tests

  • DotNet tests: Failed (Execution failed with exit code 1)
    • Xamarin.Tests.DotNetProjectTest.Run(MacCatalyst,True): Xamarin debug environment variables should not leak to app
      Assert.That(envContents, Does.Not.Contain ("_XAMARIN_DEBUG"))
      E...

Html Report (VSDrops) Download

❌ interdependent-binding-projects tests

🔥 Failed catastrophically on VSTS: test results - interdependent-binding-projects (no summary found).

Html Report (VSDrops) Download

❌ monotouch tests (iOS)

2 tests failed, 16 tests passed.

Failed tests

  • monotouch-test/iOS - simulator/Release (link sdk): Failed
  • monotouch-test/iOS - simulator/Release (link all): Failed

Html Report (VSDrops) Download

❌ monotouch tests (MacCatalyst)

1 tests failed, 17 tests passed.

Failed tests

  • monotouch-test/Mac Catalyst/Release (link sdk): Failed (Test run failed.
    Tests run: 3768 Passed: 3595 Inconclusive: 19 Failed: 3 Ignored: 170)

Html Report (VSDrops) Download

Successes

✅ assembly-processing: All 1 tests passed. Html Report (VSDrops) Download
✅ cecil: All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (iOS): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (macOS): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (Multiple platforms): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (tvOS): All 1 tests passed. Html Report (VSDrops) Download
✅ framework: All 2 tests passed. Html Report (VSDrops) Download
✅ fsharp: All 4 tests passed. Html Report (VSDrops) Download
✅ generator: All 5 tests passed. Html Report (VSDrops) Download
✅ introspection: All 4 tests passed. Html Report (VSDrops) Download
✅ linker (iOS): All 21 tests passed. Html Report (VSDrops) Download
✅ linker (MacCatalyst): All 21 tests passed. Html Report (VSDrops) Download
✅ linker (macOS): All 21 tests passed. Html Report (VSDrops) Download
✅ linker (tvOS): All 21 tests passed. Html Report (VSDrops) Download
✅ monotouch (macOS): All 18 tests passed. Html Report (VSDrops) Download
✅ monotouch (tvOS): All 18 tests passed. Html Report (VSDrops) Download
✅ msbuild: All 2 tests passed. Html Report (VSDrops) Download
✅ sharpie: All 1 tests passed. Html Report (VSDrops) Download
✅ windows: All 3 tests passed. Html Report (VSDrops) Download
✅ xcframework: All 4 tests passed. Html Report (VSDrops) Download
✅ xtro: All 1 tests passed. Html Report (VSDrops) Download

macOS tests

✅ Tests on macOS Sonoma (14): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Sequoia (15): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Tahoe (26): All 5 tests passed. Html Report (VSDrops) Download

Linux Build Verification

Linux build succeeded

Pipeline on Agent
Hash: dde8d06ac60ac2520243d6253520b712cfbb2c66 [PR build]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants