Welcome to the Inedo Forums! Check out the Forums Guide for help getting started.

If you are experiencing any issues with the forum software, please visit the Contact Form on our website and let us know!

[ProGet] Download NuGet packages with symbols



  • Hi,

    we are using portable PDB files in combination with Source Link for debugging purposes.
    Last time I checked, I was able to download either the package itself, or the package with symbols. But I can not find the option "Download with Symbols" anymore.
    Has it moved? Or is it no longer possible?

    I am asking because we have a problem with debugging a specific package and I would like to download it (including its symbols) to check if the package is ok.

    Cheers,
    Caterina


  • inedo-engineer

    Hhi @caterina ,

    What does the configuration of your Sybmol Server look like, on the Manage Feed page?

    Thanks,
    Alana



  • Hi @atripp,

    ah I see the settings were messed up. "Standard" was selected. Switching to "Mixed" made the download-button appear again.

    The info window of the settings states:
    "We recommend following the "Standard" approach of storing NuGet Packages and Symbol Packages (.snupkg format) in the same feed".
    Would it be better to work with .snupkg files instead of embedded portable PDBs?

    Cheers,
    Caterina


  • inedo-engineer

    Hi @caterina ,

    We recommend migrating to the standard format (as they call it now) , which is .snupkg.

    The .symbols.nupkg format is considered legacy, and the "embedded" format that we used to recommend was effectively a varation of the old format.

    Cheers,
    Alana



  • Hi @atripp,

    thank you very much for the clarification :)

    Cheers,
    Caterina



  • Hi,

    I have to ask again:
    https://learn.microsoft.com/en-us/dotnet/standard/library-guidance/nuget#symbol-packages

    This documentation states that it is possible to use .snupkg files or to embed the symbol files in the NuGet package (like we do it).
    I can't find a documentation that says embedding symbol files is deprecated/legacy.

    The documentation says: "The downside of embedding symbol files is that they increase the package size by about 30% for .NET libraries compiled using SDK-style projects. If package size is a concern, you should publish symbols in a symbol package instead."
    But with the setting "Strip symbol files and source code from packages downloaded from this feed" ProGet provides for the legacy format we can avoid the problem of an increased package size.

    Maybe you can evaluate further why only .snupgk files are supported as a standard?

    Thanks,
    Caterina


  • inedo-engineer

    Hi @caterina,

    Microsoft is confusing on this subject - they refer to the old format as legacy sometimes (https://learn.microsoft.com/en-us/nuget/create-packages/symbol-packages) but other times they just imply it's not preferred. Our documentation and the software itself is usually based on the language they used at the time we drafted the feature. I suspect we are just leaning more into the "legacy/deprecated" terminology than they are right now.

    In any case, we have no plans to remove support for the symbol package format or anything. Is the problem that we are missing the "Download with Symbols" link now? I can file that as a bug if that's the case.

    Hope this helps!
    -Greg



  • Hi @gdivis,

    thank you for your response.
    I think it is a little bit confusing in general.

    Just for clarification:
    We are not using any symbol packages at all (neither .symbols.nupgk nor .snupkg). We are only embedding PDBs right into our .nupgk files. But it would be nice to strip the PDBs on package download. We can achieve this on ProGet by activating the symbol server for the legacy format.

    I was just confused on why I have to use "legacy" for this approach since it is also standard to embedd the PDBs instead of using symbol packages.

    I guess normally it won't be necessary to enable a symbol server if you are using embedded PDBs. But we want to see the symbol information for our packages and we want to be able to strip the PDBs on download.

    It seems to be more of a hack to use the legacy symbol server for this but we achieve our goals doing so. No need to file a bug for this.

    Thank you,
    Caterina


Log in to reply
 

Inedo Website HomeSupport HomeCode of ConductForums GuideDocumentation