NuGetPackageExplorer: Why does PDB checksum validation fail the Source Link and Deterministic checks?
Type Question / feature request NPE version: 5.7.27 OS version: Windows 10 1909 - 18363.836 Installed from: Microsoft Store
Ever since NuGet Package Explorer added PDB checksum validation, our packages have been showing up as not having Source Link support despite being properly indexed:

It’s failing because of the checksum validation:

The package used in the screen shots: NServiceBus 7.3.0
However, despite that, Source Link works fine on our packages, letting you step in to code as expected.
We do use Fody for post-processing of the assemblies, and it appears that it is removing the PdbChecksum DebugDirectoryEntry from the PDB when it does. While I am going to see if there’s a way to get Fody to write a valid checksum value into the PDB, I think it makes sense to change the way NuGet Package Explorer handles this scenario.
What does the checksum validation have to do with Source Link? It seems to me that it should be a separate entry if you want to report that.
I also think that the deterministic check should not by skipped in this scenario. It currently fails because of “Missing Symbols”, which also isn’t true in this case.
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Comments: 16 (7 by maintainers)
I just talked to @tmat. In this case, when the pdb is in the nupkg, it looks like the checksum isn’t needed. I can fix the logic to account for that.
However snupkg requires the checksum for things to match and work so there’s still an issue that needs to be fixed in Fody.
No, that should cover it.
Regarding Fody causing the checksum to be removed, it looks like it’s a Mono.Cecil problem: https://github.com/jbevain/cecil/issues/610
Please. Also if you can do that and use the “Report a Problem” feature in VS repro there and send me the link, that’ll help too.