如何使用 VS 15.7 及更高版本调试没有 WIP 功能的 nuget 包

How to debug a nuget package without WIP features using VS 15.7 and above

我读过这篇文章:How to debug into my nuget package deployed from TeamCity? 但由于某些原因,我的项目无法调试,除非要求我指定源文件的位置。使用以下命令,我能够使用符号

正确创建一个包(无需在 .csproj 中添加任何包)

有问题的包位于本地 nuget 提要上。

它会在调试过程中提示我输入源文件,尽管 nupkg 包含调试符号+源它不起作用

用于生成包的命令:

dotnet clean "../$path"
dotnet pack "../$path" -o "$outputRoot" -v $verbosity -c $configuration -symbols --include-symbols --include-source /p:PackageVersion=$version  
Invoke-Expression "& $nugetPath push $outputRoot$path.$version.symbols.nupkg -source $localFeed" 

本地存储库中的结构:

本地 nuget 提要的内容

package.id/$version/

的内容

lib/net462

的内容

对我来说,包裹似乎处于应该正常工作的状态 - 不是吗?

It will prompt me for the source file during debugging, despite the nupkg containing debugging symbols+sources it isn't working

即使调试symbols+sources包含在symbols nuget包中,但是当你在Visual Studio中调试这个nuget包时,NuGet本身并没有解析symbols nuget包的能力。所以Visual Studio调试时还是找不到源文件。这就是 NuGet 团队 publish the symbols package to the SymbolSource server 的原因。

有关更多详细信息,请参阅 How to debug code in a nuget package created by me

此外,自Currently the NuGet package debugging and symbols experience is not streamlined.以来,从Visual Studio成功调试nuget包并不容易。不知道为什么你不想指定源文件的位置,如果你对它感兴趣,你可以使用轻量级解决方案调试nuget包:

我一直在使用这个方法,没有任何其他问题,希望这对你有帮助。