首页 > 解决方案 > 调试 Nuget 包不起作用

问题描述

我正在尝试创建一个调试器 nuget 包。所以,我从“创建符号包”开始。使用创建包 nuget pack PackageARM.nuspec -Symbols

包ARM.nuspec:

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
  <metadata>
    <id>PackageARM</id>
    <version>1.0.15</version>
    <authors>PackageARM</authors>
    <owners>PackageARM</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Package Description</description>
    <dependencies>
      <group targetFramework=".NETStandard2.0" />
    </dependencies>
  </metadata>
  <files>
        <file src="bin\Release\netstandard2.0\*.pdb" target="lib\netstandard2.0" />
        <file src="bin\Release\netstandard2.0\*.dll" target="lib\netstandard2.0" />
        <file src="**\*.cs"  target="src" />
    </files>
</package>

并将其推送到 nuget:https ://www.nuget.org/packages/PackageARM/1.0.15

然后取消选中Enable Just My Code并签Enable source server support入 VS 2017。我还尝试添加符号服务器:https://www.nuget.orghttps://nuget.smbsrc.net/但没有结果。

当我尝试使用 F11 从包中进入方法时,它只是进入下一行。我错过了什么?

我的 pdb 文件包含 .cs 文件的路径,即 'C:\project\ProjectARM\Class1.cs' 可以吗?如果没有源路径,其他用户如何调试?

标签: c#visual-studiodebuggingnuget

解决方案


如果没有源路径,其他用户如何调试?

由于您无法从符号服务器访问符号包,因此我们无法以这种方式进行调试。我想为您提供调试 nuget 包的解决方法。

  1. 将 pdb 和源代码文件放在 dll 旁边的 NuGet 包中。
  2. 将源代码添加到引用包的解决方案的调试源文件中。

有关第 1 步的更多详细信息:

我在 nuget.org 上检查了你的 nuget 包,发现你已经将.pdbNuGet 包中的源代码文件放在了.dll.

关于第 2 步的更多详细信息:

打开解决方案后,右键单击解决方案,选择 Properties...Common Properties...Debug Source Files,并添加相关二进制引用的根源目录.cs(安装后在 Packages 文件夹中添加文件路径nuget包):

在此处输入图像描述

有关更多详细信息,请查看此线程


推荐阅读