Skip to content

[xharness] Use 'dotnet build -getProperty:...' instead of temporary PropertyInspector project - #25862

Merged
rolfbjarne merged 4 commits into
mainfrom
dev/rolf/rolfbjarne-fix-flaky-msbuild-property-evaluation
Jun 30, 2026
Merged

rolfbjarne merged 4 commits into
mainfrom
dev/rolf/rolfbjarne-fix-flaky-msbuild-property-evaluation

Conversation

@rolfbjarne

Copy link
Copy Markdown
Member

Replace the fragile approach of creating a temporary PropertyInspector.csproj
that imports the target project with a direct 'dotnet build -getProperty:...'
invocation. This avoids the SIGSEGV crashes (exit code 139) seen in CI.

The new approach:

  • Runs 'dotnet build -getProperty: -t:' directly
  • Captures stdout separately (with Timestamp=false) to get clean output
  • No longer needs temporary files (PropertyInspector.csproj/.txt)
  • Adds MSBuildSDKsPath=null to env vars (matching other dotnet invocations)

Fixes #25860

…ropertyInspector project

Replace the fragile approach of creating a temporary PropertyInspector.csproj
that imports the target project with a direct 'dotnet build -getProperty:...'
invocation. This avoids the SIGSEGV crashes (exit code 139) seen in CI.

The new approach:
- Runs 'dotnet build <project> -getProperty:<prop> -t:<target>' directly
- Captures stdout separately (with Timestamp=false) to get clean output
- No longer needs temporary files (PropertyInspector.csproj/.txt)
- Adds MSBuildSDKsPath=null to env vars (matching other dotnet invocations)

Fixes #25860

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@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.

@rolfbjarne
rolfbjarne marked this pull request as ready for review June 30, 2026 06:06
Copilot AI review requested due to automatic review settings June 30, 2026 06:06

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 xharness’ MSBuild property evaluation logic to avoid creating a temporary PropertyInspector.csproj, instead invoking dotnet build <project> -getProperty:<prop> directly to reduce CI flakiness (SIGSEGV/exit code 139) when locating app bundles.

Changes:

  • Replace temporary “PropertyInspector” project generation with a direct dotnet build -getProperty:... invocation on the target project.
  • Capture stdout separately (without timestamps) and return it as the evaluated property value.
  • Align dotnet invocation environment by clearing MSBUILD_EXE_PATH and MSBuildSDKsPath.

Comment thread tests/xharness/AppBundleLocator.cs
Comment thread tests/xharness/AppBundleLocator.cs
@rolfbjarne
rolfbjarne enabled auto-merge (squash) June 30, 2026 06:16
@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 #a593723] Build passed (Build packages) ✅

Pipeline on Agent
Hash: a593723ece0d853e5dc367c23f6956d41157c979 [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

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

Pipeline on Agent
Hash: a593723ece0d853e5dc367c23f6956d41157c979 [PR build]

@vs-mobiletools-engineering-service2

Copy link
Copy Markdown
Collaborator

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

Pipeline on Agent
Hash: a593723ece0d853e5dc367c23f6956d41157c979 [PR build]

@vs-mobiletools-engineering-service2

This comment has been minimized.

@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: a593723ece0d853e5dc367c23f6956d41157c979 [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 #a593723] Test results 🚀

Test results

✅ All tests passed on VSTS: test results.

🎉 All 199 tests passed 🎉

Tests counts

✅ 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 (MacCatalyst): 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. [attempt 2] Html Report (VSDrops) Download
✅ interdependent-binding-projects: All 4 tests passed. Html Report (VSDrops) Download
✅ introspection: All 4 tests passed. Html Report (VSDrops) Download
✅ linker (iOS): All 15 tests passed. Html Report (VSDrops) Download
✅ linker (MacCatalyst): All 15 tests passed. Html Report (VSDrops) Download
✅ linker (macOS): All 21 tests passed. Html Report (VSDrops) Download
✅ linker (tvOS): All 15 tests passed. Html Report (VSDrops) Download
✅ monotouch (iOS): All 18 tests passed. Html Report (VSDrops) Download
✅ monotouch (MacCatalyst): All 17 tests passed. Html Report (VSDrops) Download
✅ monotouch (macOS): All 18 tests passed. [attempt 2] 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 Monterey (12): All 5 tests passed. [attempt 2] Html Report (VSDrops) Download
✅ Tests on macOS Ventura (13): All 5 tests passed. Html Report (VSDrops) Download
✅ 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: a593723ece0d853e5dc367c23f6956d41157c979 [PR build]

@rolfbjarne
rolfbjarne merged commit 9f52957 into main Jun 30, 2026
57 checks passed
@rolfbjarne
rolfbjarne deleted the dev/rolf/rolfbjarne-fix-flaky-msbuild-property-evaluation branch June 30, 2026 14:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[CI] Flaky: HarnessException "Unable to evaluate the property OutputPath" (exit code 139)

4 participants