【问题标题】:Debugging private NuGet packages?调试私有 NuGet 包?
【发布时间】:2012-09-26 05:18:04
【问题描述】:

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

当我从这些包开始编写代码时,Visual Studio 会显示“无可用源”/“未找到符号”页面。单击“加载符号”仅允许 pdb 文件,而不是符号包。

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

【问题讨论】:

标签: visual-studio debugging nuget


【解决方案1】:

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

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

【讨论】:

  • 这对我不起作用......可能你在本地有匹配的符号
【解决方案2】:

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

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


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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

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

      安装包 SymbolSource.Server.Basic

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

      【讨论】:

        【解决方案5】:

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

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

        可能有用的链接:

          • SymbolSource server installation

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

          • Vs configuration 使用 SymbolSource 进行调试

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

        【讨论】:

          【解决方案6】:

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

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

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

          【讨论】:

            猜你喜欢
            • 2022-07-21
            • 2017-07-15
            • 2019-03-02
            • 2020-11-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-09-16
            • 1970-01-01
            相关资源
            最近更新 更多