-
Notifications
You must be signed in to change notification settings - Fork 36
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
ETA for NuGet/"public" release #154
Comments
We can definitely publish them to NuGet. |
That'd be great, thanks! If you're curious, I'm using this in NuGet Package Explorer to convert PDB's to ppdb's so I can use a single API (S.R.M.) in getting the debug data (sourcelink) out of it: You can see it in action by opening a nuget package that has a dll with embedded symbols or symbols alongside (and double-click that). |
Hmm, converting the entire PDB is quite a hammer. I'm curious, how does NuGet Package Explorer use SourceLink? |
Cool! I assume it only works when the PDB is in the package? Or do you also support fetching the PDB from a symbol server? |
Right now it only works for files in the package (as legacy pdb needs the source binary for the conversion), or embedded ppdb's. Symbol server's aren't yet supported, but that'd be a cool additional check. If there's an easier way to get the data, I'm certainly game :) |
Yeah, handling all scenarios gets a bit complicated. In most of our tools (e.g. Roslyn) we use the API that matches the PDB format. For Windows PDBs, we use managed library (Microsoft.DiaSymReader package) that wraps native APIs (Microsoft.DiaSymReader.Native package). For Portable we use SRM. We encapsulate the format specific code behind an abstraction tailored to our usage, so that the rest of the code doesn't need to deal with differences between Windows and Portable PDBs. The VS debugger uses similar approach but for historical reasons chose to use ISymUnmanagedReader APIs as the abstraction layer (because they already had a lot of code using it). That's where Microsoft.DiaSymReader.PortablePdb package comes in - it implements ISymUnmanagedReader on top of SRM. But I wouldn't recommend that for your app since you don't have backward compat requirements. For reading file information and SourceLink I think the former approach would work well. It is pretty straightforward to use Microsoft.DiaSymReader APIs for reading Windows PDBs. |
Re symbol server: we now do recommend customers using snupkg for publishing Portable PDBs, rather than embedding them into their main packages. Fetching PDBs from symbol server would be a bit more work for you. https://github.com/dotnet/symstore should provide the necessary tools for that. |
Thanks -- will see. As you recall, I'm not the biggest fan of the |
I hear you, unfortunately not everyone has fast internet connection and we need to be considerate of customers who experience slow restore times and not make their situation worse. |
Not related to this thread, but one thing that'll help is if the VS debugger symbol loader could parallelize and load symbols in the background. Combined with if it could be eagerly done while the code editor was open before debug even began. This becomes important for Ctrl+F5 scenarios where I want to step-in to arbitrary code on a navigate. The symbols should be eagerly available so sourcelink info can be there to retrieve the source file. |
We can certainly look for some improvements in the symbol loader. |
Just wanted to +1 this request - we have been using pdb2pdb for years and it's a great tool and very handy. Would definitely make things more convinieint if we could consume it via nuget.org directly. |
Please push this package to nuget.org. Prerelease version is fine. It is very annoying to put this in all my projects:
Release as dotnet-tool (as suggested here #208) would be even better. |
Hi,
Just was wondering what the thinking was for getting these bits published on to NuGet.org to increase discoverability?
The text was updated successfully, but these errors were encountered: