-
Notifications
You must be signed in to change notification settings - Fork 59
Three referenced DLLs are missing PDBs on the Microsoft symbols server #4885
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Three referenced DLLs are missing PDBs on the Microsoft symbols server #4885
Comments
From: Eric St. John <[email protected]> System.Diagnostics.EventLog.Messages.dll is a resource dll. It doesn’t need / require a PDB as it contains no code, however we do build it with the C# compiler and it looks like it does produce one. I see a change we can make to the build system to package the PDB for this dll. I opened Include PDB for all TfmRuntimeSpecificPackageFile by ericstj · Pull Request #111879 · dotnet/runtime. If this is important to you we can backport this change to servicing. We transferred Microsoft.Windows.Compatibility up the stack to WindowsDesktop a few releases ago along with System.Drawing. That said – it’s not really the problem. The customer is calling out requests to update a couple of its’ external dependencies. SqlClient - which has been owned by the SQL team and ServiceModel - which is owned by WCF. I think both of those requests are reasonable, but wether or not they are safe to do and in what branch depends on the owners of those. In the past we’ve worked with them to get approval / sign off. I created a PR Update Windows.Compatibility external packages by ericstj · Pull Request #4884 · dotnet/windowsdesktop to ask what they think about versions / backporting. |
@Tanya-Solyanik , the 8.1.1 version of System.ServiceModel.Primitives definitely does contain a System.ServiceModel.dll assembly. Check the lib/net8.0 folder in the package. |
When you publish a project that references version 8.0.12 of the Microsoft.Windows.Compatibility NuGet, it includes three DLLs (System.Data.SqlClient.dll, System.Diagnostics.EventLog.Messages.dll, and System.ServiceModel.dll) which no longer have debug symbols available on the Microsoft symbol server (https://msdl.microsoft.com/download/symbols). The latest 8.0.* version should only reference DLLs with debug symbols available.
To reproduce this:
dotnet publish PublishNet8.csproj --self-contained -r win-x64
symchk.exe /s SRV*https://msdl.microsoft.com/download/symbols /if System.Data.SqlClient.dll /oc . /v
symchk.exe /s SRV*https://msdl.microsoft.com/download/symbols /if System.Diagnostics.EventLog.Messages.dll /oc . /v
symchk.exe /s SRV*https://msdl.microsoft.com/download/symbols /if System.ServiceModel.dll /oc . /v
These three binaries have missing symbols on the symbol server, so this command will fail to find their symbols.
System.Data.SqlClient.dll is in the System.Data.SqlClient NuGet. It could be upgraded from 4.8.6 to 4.9.0. I verified that version 4.9.0 has symbols available.
System.Diagnostics.EventLog.Messages.dll is in the System.Diagnostics.EventLog NuGet. The PDB for System.Diagnostics.EventLog.Messages.dll is missing even for the latest version of this NuGet (9.0.1), so this needs to be fixed at the source of that NuGet.
System.ServiceModel.dll is in the System.ServiceModel.Primitives NuGet. The latest version of this NuGet (8.1.1) no longer includes System.ServiceModel.dll, so upgrading would avoid the issue of referencing a DLL without symbols.
The text was updated successfully, but these errors were encountered: