调试Nuget包不起作用

时间:2018-05-04 21:22:51

标签: c# visual-studio debugging nuget

我正在尝试创建一个调试器nuget包。所以,我从"Creating symbol packages"开始。使用创建包 void Respawn() { anim.SetBool("isHurt", false); transform.position = new Vector3(-10.0f, -2.32f, 0); transform.rotation = Quaternion.identity; GetComponent<Rigidbody2D>().velocity = Vector2.zero; GetComponent<Rigidbody2D>().angularVelocity = 0; }

PackageARM.nuspec:

nuget pack PackageARM.nuspec -Symbols

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

然后取消选中<?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> 并检查VS 2017中的Enable Just My Code。此外,我尝试添加符号服务器:https://www.nuget.orghttps://nuget.smbsrc.net/但没有结果。

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

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

2 个答案:

答案 0 :(得分:0)

  

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

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

  1. 将pdb和源代码文件放在与dll一起的NuGet包中。
  2. 将源代码添加到引用该程序包的解决方案的调试源文件中。
  3. 有关第1步的详细信息:

    我已经在nuget.org上检查过您的nuget包,发现您已将.pdb和源代码文件放在NuGet包中与.dll一起。

    有关第2步的详细信息:

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

    enter image description here

    有关详细信息,请查看this thread

答案 1 :(得分:0)

我为此苦了很久了。这是我发现可重复使用的最简单方法:

  • 获取源代码并在本地构建nuget包。您需要增加到软件包版本。 希望作者提供了一个.nuspec来简化构建过程。

创建本地nuget源:

  • 将刚刚创建的.nuget文件放在C:\ Nuget中(例如)

  • 在Visual Studio中,选择“工具” /“选项” /“ Nuget程序包管理器” /“程序包源”

  • 按绿色(+)图标。将路径添加到您在上面创建的本地nuget程序包(C:\ Nuget),并将程序包源移动到列表顶部。

  • 在您的解决方案中,对于每个项目,请删除先前对外部nuget程序包的引用,然后从本地nuget源添加新的nuget程序包。

  • 开始调试,您应该能够进入nuget软件包的代码。

我可以在构建nuget软件包的源代码中设置一个断点,并在运行代码时将其断开。

上面的所有步骤都有些虚伪,您可能需要多次尝试才能使其正常工作。

在评论中让我知道这是否适合您。如果是这样,我将不胜感激! :)