-
Notifications
You must be signed in to change notification settings - Fork 71
#111: Move libgit2 PDB files to legacy symbol package #119
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
Conversation
Newest version ensures best compatibility with nuget.org and support for symbol packages.
Nuget supports two types of symbol packages: [legacy][1] and [snuget][2]. The latter happens to be the newer implementation. Legacy symbol packages only exist for compatibility. It should be noted that, unfortunately, snuget symbol packages do not support Windows PDBs (the kind you get from C++ code). They only support portable PDBs (managed). As such, this patch provides support for legacy symbol package format. Note the following information from the symbol package MSDN documentation page: > Native projects, such as C++ projects, produce Windows PDBs instead of > Portable PDBs. These are not supported by NuGet.org's symbol server. > Please use Legacy Symbol Packages instead. Fixes libgit2#111 [1]: https://docs.microsoft.com/en-us/nuget/create-packages/symbol-packages [2]: https://docs.microsoft.com/en-us/nuget/create-packages/symbol-packages-snupkg
Is capable of publishing the nuget package *and* the symbol package. Supports local paths (for testing with a local nuget repository) and remote URLs. The command follows Microsoft conventions for Powershell scripts, including `Get-Help` support for command line documentation.
|
Let me explain the testing I did for this. If additional testing is needed, please let me know and First, my build and test environment:
Steps:
I'm obviously missing tests for the symbol package itself here. I did enough testing to verify that
|
|
Given #111 (comment) and the changes I made in #121, we're not going to need this PR. Instead, I've just remove the PDBs from the package entirely, which should also solve the problem without needing to introduce symbol packages. Thanks for the effort on this and the information about the workaround not being valid for .NET 5. |
|
I'm glad my PR could help push us forward to a solution. Thank you for taking your time to review this! |
The single-file build functionality in .NET 5 did not work well with earlier versions of libgit2sharp. Let's see if our build works with this version and .NET 5 or .NET 6. For discussion of the errors we got when trying .NET 5 with earlier versions of libgit2sharp, see libgit2/libgit2sharp#1857, libgit2/libgit2sharp.nativebinaries#111, libgit2/libgit2sharp.nativebinaries#119, dotnet/sdk#3685, and dotnet/runtime#36590
The single-file build functionality in .NET 5 did not work well with earlier versions of libgit2sharp. Let's see if our build works with this version and .NET 5 or .NET 6. For discussion of the errors we got when trying .NET 5 with earlier versions of libgit2sharp, see libgit2/libgit2sharp#1857, libgit2/libgit2sharp.nativebinaries#111, libgit2/libgit2sharp.nativebinaries#119, dotnet/sdk#3685, and dotnet/runtime#36590
Upgrade nuget.exe to version 5.10.0.7240
Newest version ensures best compatibility with nuget.org and support for
symbol packages.
Move libgit2 PDB files to legacy symbol package
Nuget supports two types of symbol packages: legacy and
snuget. The latter happens to be the newer implementation. Legacy
symbol packages only exist for compatibility.
It should be noted that, unfortunately, snuget symbol packages do not
support Windows PDBs (the kind you get from C++ code). They only support
portable PDBs (managed). As such, this patch provides support for legacy
symbol package format. Note the following information from the symbol
package MSDN documentation page:
Fixes PDB file should never be a required dependency to run app #111
Add a script to publish the nuget package
Is capable of publishing the nuget package and the symbol package.
Supports local paths (for testing with a local nuget repository) and
remote URLs.
The command follows Microsoft conventions for Powershell scripts,
including
Get-Helpsupport for command line documentation.