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

时间:2018-08-03 15:19:36

标签: nuget visual-studio-debugging nuget-cli

我已经读过: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提要的内容

Nuget Repo

package.id/$version /

的内容

Nuget Repo

lib / net462的内容

Nuget Repo

在我看来,该软件包处于应能正常工作的状态-不是吗?

1 个答案:

答案 0 :(得分:0)

  

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

即使符号nuget包中包含调试符号+源,但是在Visual Studio中调试此nuget包时,NuGet本身也无法解析符号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包不是很容易。不确定为什么不想指定源文件的位置,如果您对此感兴趣,可以使用 lightweight solution 调试nuget包:

Is it possible to host both regular and symbols packages in a NuGet local feed on a network share?

我一直在使用此方法,没有任何其他问题,希望对您有所帮助。