Visual studio 调试Nuget库
我有一套我自己编译和修改的Nuget库 我构建它们而不在任何Nuget服务器上发布。(它不是我的库) 另一方面,我有一个使用这种NUGET的项目,但我希望调试它们 在最好的情况下,我希望:Visual studio 调试Nuget库,visual-studio,nuget,symbols,nuget-server,Visual Studio,Nuget,Symbols,Nuget Server,我有一套我自己编译和修改的Nuget库 我构建它们而不在任何Nuget服务器上发布。(它不是我的库) 另一方面,我有一个使用这种NUGET的项目,但我希望调试它们 在最好的情况下,我希望: 使用我的本地.dll和.pdb 使用local.pdb和(更新的)源代码进行调试 我正在寻找最好的解决方案,如果可能的话,加载所有本地符号, 但我不确定这是否可能 也许我必须在我自己的本地Nuget服务器上构建并使用本地Symbol服务器,但这看起来有些过分了 也许我必须在自己的本地Nuget服务器上构建
- 使用我的本地.dll和.pdb
- 使用local.pdb和(更新的)源代码进行调试
nuget.pdb
和相关的xxx.cs
源文件
根据您的描述,nuget软件包是您自己创建的,更容易实现:
1)如果您在本地有nuget.pdb文件和相应的cs文件,您只需将pdb文件放在引用nuget的项目的输出文件中,然后右键单击解决方案-->属性
-->通用属性
-->调试源文件
-->以添加cs文件所在的文件夹路径
2)如果您没有当前的nuget.pdb
文件和相关的cs源文件用于在本地进行调试,则在使用创建nuget包时需要将这些文件包括在nuget.nupkg
中,以便在安装nuget包时将这些文件添加到当前代理中
**注意:**这是创建nuget软件包的特殊步骤:
A)请确保已下载nuget.exe,然后设置其到环境变量的路径,以便可以在CMD中调用它。你可以参考
B)打开CMD,键入cd xxxxxx(包含xxxx.csproj的项目路径
)
C)键入nuget spec
生成xxx.spec
文件
然后打开它并添加如下内容:
<?xml version="1.0" encoding="utf-8"?>
<package >
<metadata>
........
</metadata>
<files>
<file src="bin\Debug\ClassLibrary11.pdb" target="lib\target framework version (like net472 or netstandard2.0)" />------ClassLibrary11.pdb is the nuget.pdb
<file src="Class1.cs" target="src" />------Class1.cs is the source file
</files>
</package>
........
------ClassLibrary11.pdb是nuget.pdb
------Class1.cs是源文件
D)然后键入nuget-pack
生成包含这些调试文件的nuget-pack
E)在新项目中安装此nuget软件包时,请不要忘记先安装。之后,您应该将资源文件的路径添加到调试源文件中
(资源文件存在于C:\Users\xxx\.nuget\packages\package name\src
或C:\xxxxx\ConsoleApp(项目文件夹)\packages\package name\src
)
编辑
F)开始调试时,请不要忘记在工具中禁用仅我的代码
选项
-->调试
-->常规
-->取消选中仅启用我的代码
也可以考虑作为源代码控件,这样就不会通过解决方案=属性来配置源路径。
此外,您可以参考。我不会说过分,但这有点牵强。我有一个问题-您所说的“它不是我的图书馆”是什么意思?您说过您有多个Nuget库,但现在听起来似乎只有一个。对于您自己的本地软件包,您唯一的希望是配置一个symbol文件夹并将符号文件放入其中,以便VS拾取。如果不想设置真正的服务器,则本地NuGet提要和本地symbol文件夹相当于远程服务器。然而,您应该注意到,像这样的一站式解决方案并不难。