Repository navigation
[msbuild] Read artifact metadata locally on Windows. Fixes #26847 - #26904
rolfbjarne wants to merge 1 commit into
Conversation
WriteAppManifest already downloads the final merged bundle manifest to Windows. Read this local file without a build session so artifact metadata collection no longer tries to execute remotely after Build has disconnected from the paired Mac. Require the local manifest to exist and skip unused minimum OS version conversion. Add RemoteWindows coverage for GetApplicationArtifacts and Publish, with archiving enabled and disabled. Verify metadata from a custom final manifest, including the bundle-name fallback. Disable the independent publish-time dSYM copy in these cases to isolate this regression. Existing remote IPA/archive coverage only invoked Build, while metadata and Publish tests were not selected by the remote Windows category filter. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
🔵 Needs a closer look
No concrete defects were identified, but paired Windows/Mac regression validation remains pending in CI.
0 open findings
What changed in this PR
Fixes remote Windows artifact metadata collection by reading the downloaded application manifest locally after the Mac build disconnects.
Changes:
- Removes remote execution from metadata reading and requires a local manifest.
- Disables unused minimum OS version conversion.
- Adds four remote Windows regression cases covering artifact collection and publishing, with and without archiving.
| File | Description |
|---|---|
| tests/dotnet/UnitTests/PostBuildTest.cs | Adds remote Windows manifest and artifact metadata checks. |
| msbuild/Xamarin.Shared/Xamarin.Shared.targets | Reads artifact metadata locally without Mac SDK conversion. |
🧠 Review effort: Balanced
✅ API diff for current PR / commitNET (empty diffs)✅ API diff vs stableNET (empty diffs)ℹ️ Generator diffGenerator Diff: vsdrops (html) vsdrops (raw diff) gist (raw diff) - Please review changes) Pipeline on Agent |
This comment has been minimized.
This comment has been minimized.
🔥 [CI Build #3b9d410] Test results 🔥Test results❌ Tests failed on VSTS: test results 1 tests crashed, 1 tests failed, 217 tests passed. Failures❌ dotnettests tests (macOS) [attempt 2]1 tests failed, 0 tests passed.Failed tests
Html Report (VSDrops) Download ❌ windows tests🔥 Failed catastrophically on VSTS: test results - windows (no summary found). Html Report (VSDrops) Download Successes✅ assembly-processing: All 1 tests passed. Html Report (VSDrops) Download macOS tests✅ Tests on macOS Sonoma (14): All 5 tests passed. Html Report (VSDrops) Download Linux Build VerificationPipeline on Agent |
Remote Windows publishing collects application artifact metadata after
Buildhas disconnected from the paired Mac. Passing the build session toReadAppManifestthen attempts another remote task without an associated application, causing the reportedArgumentNullExceptionforpath2.WriteAppManifestalready downloads the final merged bundle manifest to Windows. Read that local file without a remote session, require it to exist, and disable the unused minimum OS version conversion so metadata collection does not need the Mac SDK.Add four
RemoteWindowsregression cases coveringGetApplicationArtifactsandPublish, with archiving enabled and disabled. They verify final-manifest availability and custom application metadata, including the bundle-name fallback. Existing remote IPA/archive coverage only invokedBuild; the metadata and publish tests were not selected by the remote Windows category filter.The tests disable the independent publish-time dSYM copy to isolate this fix. That connection-ordering issue is being addressed separately. A .NET 10 backport also needs the explicit manifest download from commit
b44b2f9698.Fixes #26847
🤖 Pull request created by Copilot