0

我读过这篇文章:如何调试从 TeamCity 部署的我的 nuget 包?但由于某种原因,我的项目无法调试,而不要求我指定源文件的位置。使用以下命令,我能够正确创建一个带有符号的包(无需在 .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 回购

package.id/$version/ 的内容

Nuget 回购

lib/net462 的内容

Nuget 回购

对我来说,看起来包裹处于应该可以正常工作的状态 - 不是吗?

4

1 回答 1

0

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

即使调试符号+源代码包含在symbols nuget包中,但是在Visual Studio中调试这个nuget包时,NuGet本身并没有解析symbols nuget包的能力。所以Visual Studio在调试的时候还是找不到源文件。这就是 NuGet 团队将符号包发布到 SymbolSource 服务器的原因。

有关更多详细信息,请参阅如何在我创建的 nuget 包中调试代码。

此外,由于目前 NuGet 包调试和符号体验并未简化。,从Visual Studio成功调试nuget包并不容易。不知道为什么你不想指定源文件的位置,如果你对它感兴趣,你可以使用轻量级的解决方案来调试 nuget 包:

是否可以在网络共享的 NuGet 本地源中同时托管常规包和符号包?

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

于 2018-08-06T08:27:49.053 回答