debugging私人NuGet包?

我已经发布了一些私人/内部库作为NuGet包,使用符号选项。 包和符号托pipe在内部networking共享上。 debugging时如何进入这些软件包?

当我从这些包中进行编码时,Visual Studio将显示“No Source Available”/“No Symbols Found”页面。 单击“加载符号”只允许使用pdb文件,而不能使用符号包。

这些软件包不适合在NuGet Gallery / SymbolSource上发布。

你用什么命令来生成符号包? 我试图做同样的事情nuget.exe pack -Prop Configuration=Release Framework.csproj -Symbols这将创build两个文件: Framework.nupkgFramework.symbols.nupkg 。 我把这些文件放在一个networking共享,从另一个项目中使用它们,debugging工作正常。

您是否尝试将* .nupkg和* .symbols.nupkg文件放在本地磁盘而不是networking共享?

有几个选项; 一个是设置和configuration你自己的符号服务器 。

您还可以下载Inedo的ProGet ,在目标提要上启用符号服务,然后将您的软件包发布到ProGet。 所有这些都可以使用ProGet的免费版本来完成。


免责声明 – 我的日常工作是在Inedo

现在还有一个名为GitLink的工具( https://github.com/GitTools/GitLink ),它可以插入符号文件链接到源代码版本化的GIT文件。

您可以使用这些networking共享在内部设置您自己的符号源服务器。 您可以在我的博客上find一步一步的教程 。

它基本上是创build一个空的MVC应用程序并运行

安装程序包SymbolSource.Server.Basic

从那里你需要设置托pipe基础设施,并configurationVisual Studio和生成代理。

我们这样做(和工作)的方式:

  1. 生成“* .symbols.nupkg”
  2. 将符号包部署到SymbolSource服务器(私有)
  3. configurationIDE
  4. 使用NuGet(从我们的SymbolSource服务器)添加所需的库来投影
  5. debugging!

可能有用的链接:

    • SymbolSource服务器安装

    • 重要说明:如果在系统中检测到更新的Visual C ++ Redist版本,将无法安装“Windowsdebugging工具”

    • Vsconfiguration使用SymbolSource进行debugging

    • 要添加的url就像http://your.symbolsource-server.com:[port]/[appContext]/WinDbg/pdb

我发现它根本不起作用。 NuGet软件包引用已closures,不能在debugging器中使用。 我所做的是从项目中删除程序集引用,并直接通过path添加对DLL的Debug版本的引用。

然后,为了让debugging器停止在那个代码的某个地方,我插入了调用System.Diagnostics.Debugger.Break(); 在那个代码里 运行时,debugging器将在该行停止,这基本上是一个代码定义的断点。 这将打开正确的源文件并自动跳转到该行。

在第二个VS实例中打开库项目,根据需要移动Break调用并重build库。 完成后,从库代码中移除这些调用并恢复原始引用(可能需要重新安装NuGet包)。