繁体   English   中英

调试Nuget包不起作用

[英]Debugging Nuget package doesn't work

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

PackageARM.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并选中在VS 2017中Enable source server support 。此外,我尝试添加符号服务器: https//www.nuget.org,https//nuget.smbsrc.net/但没有结果。

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

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

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

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

  1. 将pdb和源代码文件放在与dll一起的NuGet包中。
  2. 将源代码添加到调试源文件中以获取引用该包的解决方案。

第1步的更多细节:

我在nuget.org上检查了你的nuget包,发现你已经将.pdb和源代码文件放在了.dll旁边的NuGet包中。

第2步的更多细节:

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

在此输入图像描述

有关更多详细信息,请查看此主题

我很长时间都在努力。 这是我发现可重复工作的最简单方法:

  • 获取源代码并在本地构建nuget包。 您需要增加到包版本。 希望作者提供了一个.nuspec来使构建更容易。

创建本地nuget源:

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

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

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

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

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

我能够在源代码中设置一个断点来构建nuget包,并在运行代码时将其断开。

上面的所有步骤都有点狡猾,你可能需要玩几次才能让它发挥作用。

如果这对您有用,请在评论中告诉我。 如果是这样,我会欣赏一个upvote! :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM