40

I've published some private/internal libraries as NuGet packages, using the symbols option. The packages and symbols are hosted on an internal network share. How can I step into these packages when debugging?

When I step to code from these packages, Visual Studio displays a "No Source Available" / "No Symbols Found" page. Clicking the "Load Symbols" only allows pdb files, not symbol packages.

These packages are not suitable for publishing on NuGet Gallery/SymbolSource.

4

6 回答 6

6

您用来生成带有符号的包的命令是什么?我试图做同样的事情nuget.exe pack -Prop Configuration=Release Framework.csproj -Symbols这会创建两个文件:Framework.nupkgFramework.symbols.nupkg。我将这些文件放在网络共享上,从另一个项目中使用它们并且调试工作正常。

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

于 2012-10-30T09:34:56.647 回答
5

有几个选择;一种是设置和配置您自己的符号服务器

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


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

于 2014-02-19T02:22:17.653 回答
3

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

于 2015-11-13T22:15:40.437 回答
2

您可以使用这些网络共享在内部设置自己的符号源服务器。您可以在我的博客上找到分步教程。

它基本上归结为创建一个空的 MVC 应用程序并运行

安装包 SymbolSource.Server.Basic

从那里开始,您需要设置托管基础结构并配置 Visual Studio 和构建代理。

于 2012-10-30T12:06:22.287 回答
2

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

  1. 生成“*.symbols.nupkg”
  2. 将符号包部署到 SymbolSource 服务器(私有)
  3. 配置 IDE
  4. 使用 NuGet(来自我们的 SymbolSource 服务器)将所需的库添加到项目中
  5. 调试!

可能有用的链接:

    • SymbolSource 服务器安装

    • 重要提示:如果“Windows 调试工具”检测到系统中的 Visual C++ Redist 版本比它需要/预期的更新,则不会安装

    • 使用 SymbolSource 进行调试的Vs 配置

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

于 2014-08-13T08:11:20.553 回答
1

我发现它根本不起作用。NuGet 包引用已关闭,无法在调试器中使用。我所做的是从项目中删除程序集引用,而是直接通过路径添加对 DLL 的调试版本的引用。

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

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

于 2015-09-02T13:44:57.457 回答