调试私有NuGet包?

时间:2012-10-05 04:50:12

标签: visual-studio debugging nuget

我使用symbols选项将一些私有/内部库作为NuGet包发布。包和符号托管在内部网络共享上。调试时如何进入这些包?

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

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

6 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:5)

有几种选择;一个是set-up & configure your own symbol server

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


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

答案 2 :(得分:3)

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

答案 3 :(得分:2)

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

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

  

Install-Package SymbolSource.Server.Basic

从那时起,您需要设置托管基础架构并配置Visual Studio并构建代理。

答案 4 :(得分:2)

我们这样做(并且有效):

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

      • SymbolSource server installation

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

      • Vs configuration使用SymbolSource进行调试

      • 要添加的网址类似于http://your.symbolsource-server.com:[port]/[appContext]/WinDbg/pdb

答案 5 :(得分:1)

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

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

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