Skip to content
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

How? Symbols & Source for the Decompiler Nuget Package #943

Closed
christophwille opened this issue Oct 26, 2017 · 7 comments
Closed

How? Symbols & Source for the Decompiler Nuget Package #943

christophwille opened this issue Oct 26, 2017 · 7 comments

Comments

@christophwille
Copy link
Member

christophwille commented Oct 26, 2017

Taking a private discussion between @siegfriedpammer and myself to the public forum.

What is today's suggested / accepted way of publishing pdb / source? symbolsource.org seems pretty much dead, and many modern environs expect debug symbols alongside the original dlls.

Links from the discussion:

https://docs.microsoft.com/en-us/nuget/create-packages/symbol-packages
dotnet/roslyn#3
https://github.com/ctaggart/SourceLink

What does everyone use / do these days?

Edit: via SourceLink (end of readme.md) I saw this uservoice item https://visualstudio.uservoice.com/forums/121579-visual-studio-ide/suggestions/19107733-debugger-should-support-c-compiler-embed-optio with an answer dated Oct 20th (so very recent)

Edit 2: apparently others are discussing too npgsql/npgsql#1479

@m0sa
Copy link

m0sa commented Oct 26, 2017

<DebugType>embedded</DebugType> is the new hotness - bakes the portable pdb info into the dll. Needs .NET 4.7.1 or .2 IIRC to show stack traces, though.

@KirillOsenkov
Copy link
Contributor

Yup, embedding the pdb into the dll is now supported. Also use SourceLink to map to the sources on Github. Also consider Nerdbank.GitVersioning to bake the Git Sha into the dlls.

@siegfriedpammer
Copy link
Member

Tracking dotnet/roslyn#19127 ... are there any other issues that still need to be fixed before this works out of the box in VS?

@siegfriedpammer
Copy link
Member

siegfriedpammer commented Oct 27, 2017

Just added the necessary fixes to our nuget pack process, to support the new source embedding into pdb.

We now push CI nupkgs to https://ci.appveyor.com/nuget/ilspy-masterfeed, which you can simply add to your package sources in VS.

Step by step walkthrough:
Important: This requires Visual Studio 2017 15.5 preview2 or later.

  1. Add our package source in VS:
    grafik

  2. Open up manage packages, switch to the newly created package source and enable Include prerelease and install the package.
    grafik

  3. Disable Just My Code in Debugging settings, this is necessary because we are publishing dlls built in release mode.
    grafik

  4. Just step into the decompiler source code anytime you need:
    grafik

If you want to add the same to your project, follow these links and add the required bits:

Now MSBuild should pass the correct flags to csc and invoke nuget pack properly.

@siegfriedpammer siegfriedpammer added this to the 3.0 milestone Oct 27, 2017
@diverdan92
Copy link

The NuGet team is also looking into make this experience better. Feel free to join the discussion there: NuGet/Home#6104

@christophwille christophwille removed this from the 3.0 milestone Oct 31, 2017
@christophwille
Copy link
Member Author

Milestone 3.0 intentionally removed - it is implemented, but via workarounds. We will keep this issue open to keep tracking the related issues. Will close once we can remove the workarounds.

@christophwille
Copy link
Member Author

Also see NuGet/NuGet.Client#1971

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Aug 10, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants