我正在尝试创建一个调试器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.org,https://nuget.smbsrc.net/但没有结果。
当我尝试使用F11从包中进入方法时,它只是步骤到下一行。我错过了什么?
我的pdb文件包含.cs文件的路径,即'C:\ project \ ProjectARM \ Class1.cs'可以吗?如果没有源路径,其他用户如何调试?
答案 0 :(得分:0)
如果没有带源的路径,其他用户如何调试?
由于您无法从符号服务器访问符号包,因此我们无法以这种方式进行调试。我想为您提供调试nuget包的解决方法。
有关第1步的详细信息:
我已经在nuget.org上检查过您的nuget包,发现您已将.pdb
和源代码文件放在NuGet包中与.dll
一起。
有关第2步的详细信息:
当您打开解决方案时,右键单击Solution,选择Properties ... Common Properties ... Debug Source Files,然后添加相关二进制引用的根源目录(添加安装nuget包后,在Packages文件夹中.cs
文件的路径:
有关详细信息,请查看this thread。
答案 1 :(得分:0)
我为此苦了很久了。这是我发现可重复使用的最简单方法:
创建本地nuget源:
将刚刚创建的.nuget文件放在C:\ Nuget中(例如)
在Visual Studio中,选择“工具” /“选项” /“ Nuget程序包管理器” /“程序包源”
按绿色(+)图标。将路径添加到您在上面创建的本地nuget程序包(C:\ Nuget),并将程序包源移动到列表顶部。
在您的解决方案中,对于每个项目,请删除先前对外部nuget程序包的引用,然后从本地nuget源添加新的nuget程序包。
开始调试,您应该能够进入nuget软件包的代码。
我可以在构建nuget软件包的源代码中设置一个断点,并在运行代码时将其断开。
上面的所有步骤都有些虚伪,您可能需要多次尝试才能使其正常工作。
在评论中让我知道这是否适合您。如果是这样,我将不胜感激! :)