Skip to content

Add ARM64 msdia140.dll support to test platform packages#15689

Merged
nohwnd merged 4 commits into
microsoft:rel/18.7from
jamesmcroft:dev/jamescroft/msdia-arm64
Apr 17, 2026
Merged

Add ARM64 msdia140.dll support to test platform packages#15689
nohwnd merged 4 commits into
microsoft:rel/18.7from
jamesmcroft:dev/jamescroft/msdia-arm64

Conversation

@jamesmcroft

@jamesmcroft jamesmcroft commented Apr 17, 2026

Copy link
Copy Markdown
Member

Adds ARM64 support for msdia140.dll across the test platform packaging, enabling ARM64 test hosts to use the DIA SDK for symbol resolution and crash dump analysis (#15327)

Changes

File Change
eng/Versions.props Bump TestPlatformMSDiaVersion to 18.7.0-preview-1-11715-406
TestHost.csproj Add DiaFilesArm64 item group + copy in CopyDiaFiles target
TestHost.nuspec Add arm64/msdia140.dll to lib/net8.0/arm64/
CLI.nuspec Add arm64/msdia140.dll + manifest to TestHostNetFramework/arm64/

Context

The Microsoft.Internal.Dia package version 18.7.0-preview-1-11715-406 now includes ARM64 binaries alongside existing x86 and x64. The test platform packaging only referenced x86 and x64 — this PR wires ARM64 through the build and nuspec layout.

Validation

  • ARM64 DLL confirmed present in the updated package (tools/net451/arm64/msdia140.dll)
  • PDB resolves on the Microsoft public symbol server for all three architectures (x86, x64, arm64) via dotnet-symbol
  • CLI.csproj already uses wildcard globs (**/*) for Dia file copy — no change needed there

- Bump Microsoft.Internal.Dia to 18.7.0-preview-1-11715-406 (includes ARM64)
- Add ARM64 DIA file copy in TestHost.csproj CopyDiaFiles target
- Add ARM64 msdia140.dll to TestHost.nuspec package layout
- Add ARM64 msdia140.dll and manifest to CLI.nuspec TestHostNetFramework

The ARM64 msdia140.dll was added to the Microsoft.Internal.Dia package via VS PR #720616. Symbol resolution verified for all architectures (x86, x64, arm64) via dotnet-symbol against the Microsoft symbol server.
@jamesmcroft

Copy link
Copy Markdown
Member Author

cc @nohwnd

@nohwnd

nohwnd commented Apr 17, 2026

Copy link
Copy Markdown
Member

fails with: Verify-Nuget-Packages : There are 2 errors:
Number of files are not equal for 'Microsoft.TestPlatform.CLI.18.7.0-ci', expected: 483 actual: 485
Number of files are not equal for 'Microsoft.TestPlatform.TestHost.18.7.0-ci', expected: 64 actual: 65

You need to bump up the numbers in verify-nupkgs script. and ideally tell me what the added files are exactly.

I would also check microsoft.testplatform package, portable package, and cli.v2, those should be all the tools packages, not sure if we ship the dlls in all.

@nohwnd

nohwnd commented Apr 17, 2026

Copy link
Copy Markdown
Member

- Add ARM64 msdia140.dll and manifest to Portable.nuspec TestHostNetFramework
- Add ARM64 VsixSourceItem to V2.CLI.csproj for VSIX packaging
- Update verify-nupkgs.ps1 expected file counts
@jamesmcroft

jamesmcroft commented Apr 17, 2026

Copy link
Copy Markdown
Member Author

Updated with the additional packages and verify-nupkgs counts. Here's the breakdown of what was added and where:

Files added by Microsoft.Internal.Dia 18.7.0-preview-1-11715-406

The updated package includes a new tools/net451/arm64/ folder containing:

  • msdia140.dll
  • msdia140.dll.manifest

Where ARM64 entries were added

Package File Change
TestHost.csproj CopyDiaFiles target Added DiaFilesArm64 item group + copy to arm64
TestHost.nuspec lib/net8.0/arm64/ Added msdia140.dll
CLI.nuspec contentFiles/any/net10.0/TestHostNetFramework/arm64/ Added msdia140.dll + .manifest
Portable.nuspec tools/net8.0/TestHostNetFramework/arm64/ Added msdia140.dll + .manifest
V2.CLI.csproj VSIX VsixSourceItem Added arm64\* with VSIXSubPath=arm64

verify-nupkgs.ps1 count updates

Package Before After Delta
TestHost 64 65 +1 (arm64 dll)
CLI 483 485 +2 (arm64 dll + manifest)
Portable 609 611 +2 (arm64 dll + manifest)
V2.CLI 388 390 +2 (arm64 dll + manifest)

Verified locally: build succeeded, pack succeeded, all file counts match.

@nohwnd

nohwnd commented Apr 17, 2026

Copy link
Copy Markdown
Member

still missing microsoft.testplatform if I am looking correctly. https://github.com/microsoft/vstest/blob/main/src/package/Microsoft.TestPlatform/Microsoft.TestPlatform.nuspec

Add arm64 msdia140.dll and manifest entries to all three locations in
Microsoft.TestPlatform.nuspec (TestImpact/ComComponents, V1/TestImpact/ComComponents,
and TestPlatform root). Update verify-nupkgs.ps1 count from 545 to 551 (+6 files).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@nohwnd

nohwnd commented Apr 17, 2026

Copy link
Copy Markdown
Member

Pushed a fix to add ARM64 msdia140.dll entries to Microsoft.TestPlatform.nuspec — it was the only nuspec still missing arm64.

Changes:

  • Added arm64/msdia140.dll + .manifest to all 3 msdia groups in Microsoft.TestPlatform.nuspec (TestImpact/ComComponents, V1/TestImpact/ComComponents, and TestPlatform root)
  • Updated verify-nupkgs.ps1 count for Microsoft.TestPlatform: 545 → 551 (+6 files)

The .csproj already uses a **\* wildcard glob for Dia files so the build copies arm64 automatically — only the nuspec needed explicit entries.

The Microsoft.Internal.CodeCoverage package already includes arm64\msdia140.dll
in its TestPlatform folder, and the wildcard on line 378 of the nuspec picks it up.
The explicit entry conflicts with that wildcard. Remove just the dll entry (keep
the manifest which CodeCoverage doesn't include). Count: 551 -> 550.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@nohwnd nohwnd merged commit 1f2490d into microsoft:rel/18.7 Apr 17, 2026
6 checks passed
This was referenced Jul 3, 2026
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.

2 participants