Skip to content

source-build: Remove Microsoft.DiaSymReader.Native prebuilt #3482

@dagood

Description

@dagood

Part of prebuilt removal: dotnet/source-build#885

I looked at the Core-Setup Microsoft.DiaSymReader.Native 1.7.0 prebuilt dependency. I don't believe the source for this package is public, so we can't remove it by adding the repo to source-build.

https://github.com/dotnet/core-setup/blob/855cd7611a68f849e041e13a7836f10eaa6e1ed4/src/pkg/projects/netcoreapp/src/netcoreapp.depproj#L16

Core-Setup redists the package's native DLLs in the Windows runtime packages. Not a problem for build from source: Windows is not a priority.

More interesting, the native DLL version info is included in the platform manifest file (in Microsoft.NETCore.App):

Microsoft.DiaSymReader.Native.x86.dll|Microsoft.NETCore.App||14.12.25830.2
Microsoft.DiaSymReader.Native.amd64.dll|Microsoft.NETCore.App||14.12.25830.2
Microsoft.DiaSymReader.Native.arm.dll|Microsoft.NETCore.App||14.12.25830.2

Removing this dependency would make source-build unable to produce the same platform manifest as the Microsoft build without workarounds. We could hard-code the values, or put these native DLLs through something like the ref-only prebuilt managed DLL infrastructure.

However, the source-built platform manifest file is already missing these entries, and more. This is because source-build only produces the manifest for the current platform, where the Microsoft build produces the manifest for all platforms. If this difference is ok, we can remove the dependency during builds from source without any concerns.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions