[ci] Fix internal build: duplicate .cab signing + missing MicrosoftWixVersion - #36879
Conversation
Arcade's built-in Sign.props already registers .cab with the Microsoft400 certificate via: <FileExtensionSignInfo Include=".dll;.exe;.mibc;.msi;.cab" CertificateName="Microsoft400" /> Redefining .cab in eng/Signing.props causes SignToolTask to fail during the internal 'Pack, Sign' step with: error : Multiple certificates for extension '.cab' defined for CollisionPriorityId ''. There should be one certificate per extension per collision priority id. Cab files embedded inside workload MSIs will still be signed with Microsoft400 via Arcade's default, so no signing coverage is lost. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: fe72440b-378b-4c09-9e06-0f3957385779
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.sh | bash -s -- 36879Or
iex "& { $(irm https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.ps1) } 36879" |
|
Azure Pipelines: Successfully started running 1 pipeline(s). There may be pipelines that require an authorized user to comment /azp run to run. |
Skill Validation Results
✅ Skill Validation Results —
|
The WiX 6 migration (a8624ba) added $(MicrosoftWixVersion) in eng/Versions.props and referenced it from eng/NuGetVersions.targets for the 5 WiX 6 packages. A subsequent merge into release/11.0.1xx-preview7 dropped the property definition, so the reference in NuGetVersions.targets now resolves to empty and NuGet restore fails with: error NU1015: The following PackageReference item(s) do not have a version specified: Microsoft.Wix, Microsoft.WixToolset.Dependency.wixext, Microsoft.WixToolset.Heat, Microsoft.WixToolset.UI.wixext, Microsoft.WixToolset.Util.wixext Restore the property with the same value used in the original migration. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: fe72440b-378b-4c09-9e06-0f3957385779
|
/backport to main |
|
Started backporting to |
|
@rmarinho backporting to |
Refresh dotnet/dotnet, dotnet/android, and dotnet/macios from the .NET 11.0.1xx SDK channel. Keep Android and macOS workload manifest package bands on Preview 7 during the RC 1 transition, and port the signing and WiX fixes from #36879. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: d483d48e-8fc4-43ba-a37f-ac8d32c45fd5
|
/backport to main |
|
Started backporting to |
|
@rmarinho backporting to git am output$ git am --3way --empty=keep --ignore-whitespace --keep-non-patch changes.patch
Applying: [ci] Remove duplicate .cab signing entry
Applying: [ci] Restore MicrosoftWixVersion property lost in merge
Using index info to reconstruct a base tree...
M eng/Versions.props
Falling back to patching base and 3-way merge...
Auto-merging eng/Versions.props
CONFLICT (content): Merge conflict in eng/Versions.props
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
hint: When you have resolved this problem, run "git am --continue".
hint: If you prefer to skip this patch, run "git am --skip" instead.
hint: To restore the original branch and stop patching, run "git am --abort".
hint: Disable this message with "git config set advice.mergeConflict false"
Patch failed at 0002 [ci] Restore MicrosoftWixVersion property lost in merge
Error: The process '/usr/bin/git' failed with exit code 128 |
|
@copilot can you create apply this fix on top of main and make a new pr? |
<!-- Please let the below note in for people that find this PR --> > [!NOTE] > Are you waiting for the changes in this PR to be merged? > It would be very helpful if you could [test the resulting artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from this PR and let us know in a comment if this change resolves your issue. Thank you! Ports the `.cab` signing fix from #36879 (merged into `release/11.0.1xx-preview7`) to `main`. ### Duplicate `.cab` signing entry The internal `Pack, Sign` task fails with: ``` Sign.proj(74,5): error : Multiple certificates for extension '.cab' defined for CollisionPriorityId ''. There should be one certificate per extension per collision priority id. ``` **Cause:** PR #35026 added an explicit `.cab` `FileExtensionSignInfo` to `eng/Signing.props`, but Arcade's built-in `Sign.props` already registers `.cab` by default: ```xml <FileExtensionSignInfo Include=".dll;.exe;.mibc;.msi;.cab" CertificateName="Microsoft400" /> ``` **Fix:** Remove the duplicate entry. Cab files inside workload MSIs are still signed with `Microsoft400` via the Arcade default, so no signing coverage is lost. The `ReconnectModal.razor.js` `FileSignInfo` entry from #35026 is kept. ### Note on the second fix in #36879 #36879 also restored a missing `MicrosoftWixVersion` property in `eng/Versions.props`. **That part does not apply to `main`** — `main` has not taken the WiX 6 migration and still uses `Microsoft.Signed.WiX` / `$(MicrosoftSignedWixVersion)` in `eng/NuGetVersions.targets`. There is no `$(MicrosoftWixVersion)` reference anywhere on `main`, so adding the property would be dead config. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 515c328a-83aa-4348-9548-4d45f97760c0
<!-- Please let the below note in for people that find this PR --> > [!NOTE] > Are you waiting for the changes in this PR to be merged? > It would be very helpful if you could [test the resulting artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from this PR and let us know in a comment if this change resolves your issue. Thank you! ### Description of Change Refreshes `net11.0` from the latest builds on the `.NET 11.0.1xx SDK` channel and fixes the official workload and sample-build failures exposed by the RC1 transition. | Source | BAR build | Build/version | Commit | |---|---:|---|---| | `dotnet/dotnet` | 324908 | `20260729.2` / SDK `11.0.100-rc.1.26379.102` / Arcade `11.0.0-beta.26379.102` | `813f634ceb016018f5acc9bd3c2b16e17dff4686` | | `dotnet/macios` | 324699 | `20260728.2` / Apple `26.5.11992-net11-rc.1` | `17d5ebd7632ca2960ab6e3d4bdb68697d24bc2ba` | | `dotnet/android` | 324914 | `11.0.0-preview.7.26379.1+azdo.14802945` / Android `37.0.0-ci.main.2160` | `444db99f7b362334b2785498c57064a4c66a7165` | The dependency refresh updates `eng/Version.Details.xml`, `eng/Versions.props`, and `global.json`, while preserving the macOS dependency feed update in `NuGet.config`. The macOS net10 coherent dependencies remain mapped to BAR 324587, and the previous Android manifest remains mapped to BAR 315081. The branch also merges the current `net11.0` tip so it includes the already-merged `ExampleJsInterop` BL0016 fixes from #36888. ### RC1 build fixes - Advances `Microsoft.DotNet.Arcade.Sdk` and related VMR dependencies to `11.0.0-beta.26379.102`, replacing the unavailable `11.0.0-beta.26365.101` requested by failing official build 3034332. - Temporarily pins the Android and Apple workload manifest package IDs to `11.0.100-preview.7`. Their latest component builds contain RC1 product versions but still publish Preview 7 manifest package IDs; using the VMR-derived RC1 IDs fails restore with `NU1101`. - Removes MAUI's duplicate explicit `.cab` `FileExtensionSignInfo`; Arcade already signs `.cab` files with `Microsoft400`. - Restores `<MicrosoftWixVersion>6.0.3-dotnet.4</MicrosoftWixVersion>` so all five WiX 6 package references have a version. - Guards the Controls sample's `confirm`, `prompt`, and `alert` JavaScript interop calls with `JSException` handling. The RC1 BL0016 analyzer rejects these calls when they are outside a `try`/`catch`; exceptions are rethrown as operation-specific `InvalidOperationException`s rather than suppressed or swallowed. The signing and WiX changes reproduce the final implementation from merged PR #36879 (merge commit `67c53f3a438adf50bc1023321f33d7bc2e5bf6f9`) without merging or cherry-picking the release-branch commit. ### Validation - XML and JSON parsing; `git diff --check` - Exact BAR asset/version/SHA mapping for all refreshed dependencies and coherent prior pins - `darc verify` (only unchanged baseline Tizen/XUnit duplicate aliases and XHarness casing/version findings remain) - Workload bootstrap/restore and targeted MSBuild preparation using Arcade `11.0.0-beta.26379.102` - WiX restore resolves all five references to `6.0.3-dotnet.4` - No explicit `.cab` signing entry remains in `eng/Signing.props` - `Maui.Controls.Sample.csproj -f net11.0 -c Debug` under SDK `11.0.100-rc.1.26379.102` — passed with 0 warnings/errors - `Maui.Controls.Sample.csproj -f net11.0 -c Release` under SDK `11.0.100-rc.1.26379.102` — passed with 0 warnings/errors ### Issues Fixed No linked GitHub issue. Fixes the `net11.0` official pipeline dependency provisioning, workload restore, signing, WiX restore, and RC1 BL0016 sample-build failures. --------- Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: PureWeen <223556219+Copilot@users.noreply.github.com> Copilot-Session: d483d48e-8fc4-43ba-a37f-ac8d32c45fd5
Note
Are you waiting for the changes in this PR to be merged?
It would be very helpful if you could test the resulting artifacts from this PR and let us know in a comment if this change resolves your issue. Thank you!
Fixes two independent issues that were both blocking the internal
dotnet-mauipipeline onrelease/11.0.1xx-preview7.1. Duplicate
.cabsigning entryThe internal
Pack, Signtask failed with:Cause: PR #35026 added an explicit
.cabFileExtensionSignInfotoeng/Signing.props, but Arcade's built-inSign.propsalready registers.cabby default:Fix: Remove the duplicate entry. Cab files inside workload MSIs are still signed with
Microsoft400via the Arcade default. TheReconnectModal.razor.jsFileSignInfoentry from #35026 is kept.Failing build: internal build 3033388.
2. Missing
MicrosoftWixVersionpropertyAfter fixing (1), the next internal build (3033430) failed the
Build Workloads, Sign & Publishtask with:Cause: The WiX 6 migration (commit a8624ba) added
<MicrosoftWixVersion>6.0.3-dotnet.4</MicrosoftWixVersion>toeng/Versions.propsand referenced it fromeng/NuGetVersions.targets. A subsequent merge intorelease/11.0.1xx-preview7dropped the property definition, so the reference resolves to empty and restore fails.Fix: Restore the property with the same value used in the original migration.
Follow-up
Both fixes should be ported to
main. Main also has the duplicate.cabentry, andMicrosoftWixVersionshould be double-checked there after agit mergeaudit.