New Reply

Hi,

After starting to target netstandard 1.4 and using a new build script(Cake), i no longer get symbols in ProGet (meaning no "Symbols and source files are available. [view]", and no pdb in downloaded package).

I have verified that the the package i pushed contains symbol information. nuget creates two packages: One with no pdb, and one with the same content + pdf (that it calls *.symbols.nupkg). I have tried pushing both and only pushing the .symbols.nupkg one.

I am using msbuild /t:pack (because i need to pass msbuild properties) and i am passing IncludeSymbols=true and IncludeSource=true.

When pushing i use Cake's NuGetPush with Source and ApiKey set. I also tried setting SymbolSource and SymbolApiKey. But so far no luck.

I would appreciate any pointers...

Product: ProGet
Version: 4.7.6

We're really not familiar with CAKE, so we're not sure how or why this would be behaving any different than any other packaging mechanism. We follow the symbol specifications outlined in the NuGet documentation, and a NuGet package is a zip file, so I would just unzip it and see how/why it works differently than what's documented.

I am pretty sure the problem is not with Cake itself, it is simply calling the cmd line tools. I am more considering whether it might be a problem related to the new project system for netstandard or the version of nuget used etc.

I have verified that the PDB is valid, meaning i can use it for debugging in VS2017.

What can i do to determine what happens on the ProGet server? Is there a log somewhere?

Unfortunately there is no easy answer; symbols/source serving are a 20+ year old technology and are filled with all sorts of quirks. If you browse the symbols tag, you will find a bunch of Q&A questions with a bunch of different advice. And of course please share the resolution you found if you wouldn't mind :)

The default PDB format for the project files was changed from Full to Portable (see https://github.com/dotnet/core/blob/master/Documentation/diagnostics/portable_pdb.md). The portable format is not compatible with the symbol server. To switch back to the old format just add this to a property group in the *.csproj file: <DebugType>Full</DebugType>. You can also override this with /p:DebugType=Full in your build command.

Also make sure that the nuget packages are created with --include-symbols --include-source

Answer Details

Preview:

Post Reply