Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
It turns out that Nuget.org doesn't support "Nuget Symbol Packages" for native binaries at all.
They only support symbols for "managed" code (ie: C# or dotnet). If you try to upload a
.snupkg
thatcontains native/C++
.pdb
files in it, then it is rejected.This means that we can't use Nuget.org for publish symbols at all, and instead need to find alternative methods.
Unfortunately, it turns that in order to publish symbols to the public
https://symweb
symbol server you need tosetup and maintain a corp-email-enabled domain service account, setup appropriate key storage in Azure Key Vault,
and then request special permission to publish using a PAT to push the symbols. This adds a ton of overhead.
In order to provide symbols but try to reduce the amount of overhead, we can upload the symbols to the GitHub
release page for a given MS-ICU version -- which does allows uploading any arbitrary zip files.
In the Nuget package nuspec we can then provide a direct link to the GitHub release page, so a user doesn't need
to hunt around on a wiki page to find the right symbols for a particular version. (Thanks to Axel for this idea).
This will let us provide debugging symbols for the Nuget packages (for both Windows and Linux) and the user only
has to click the link in the Nuget package description to find the downloads.
However, as an added bonus, it turns out that we can publish the Windows symbols to MSCodeHub -- which actually has its own symbols server.
This means that for Windows users, they can add the following to their debugger symbol path:
And then the correct symbols for any version will be resolved automatically. :)
This means that we can provide symbols two ways:
PR Checklist