【问题标题】:MyGet & SymbolSource.org: VS2012 isn't finding the pdbMyGet & SymbolSource.org:VS2012 没有找到 pdb
【发布时间】:2013-10-21 08:33:01
【问题描述】:

我在 myget(ci 的一部分)上创建了一个库,我正在尝试将符号源推送到 symbolsource.org(这是一项很棒的服务,我喜欢这个想法)。这是我的第一次尝试。我一直在使用 myget 网站上的说明:http://docs.myget.org/docs/reference/symbolsource,但有一些差距。

这是我经历的步骤。首先,我创建一个 nuspec 文件,然后使用“nuget pack -symbol xxx”创建 X.symbols.nupkg 和 X.nupkg 文件。这工作得很好。然后我将它们单独推送到 myget 和 symbolsource。我使用 nuget pkg 资源管理器检查内容,它们看起来与我预期的一样(src、pdb 和 dll 出现在符号中)。完成推送后,我可以登录到 symbolsource 并使用 myget 页面上的说明查看我的包。

我使用以下命令推送到符号源:

nuget push X.symbols.nupkg $ApiKey -Source http://nuget.gw.SymbolSource.org/MyGet/rootdotnet/

然后我按照说明配置 Visual Studio:确保关闭“仅启用我的代码”并打开符号服务器。然后,我将以下 URL 添加到符号服务器列表中:

http://srv.SymbolSource.org/pdb/MyGet/gwatts/XXXXX

XXXX 是 GUID 我从 sumbolsource“您的帐户”/“身份验证”“Visual Studio”表条目中读取(myget 根本不清楚这是我应该做的)。

然后我尝试调试。当我在该库中找到某些东西时,我在 VS2012 中得到“未加载符号”页面。在详细信息下,有一个转储VS2012试图找到pdb文件。我看到以下内容:

C:\Users\Gordon\Documents\Code\HVQCDCorrelationStudy\CalcSimpleCorrelationTestNumbers\bin\x86\Debug\LINQToTTreeLib.pdb: Cannot find or open the PDB file.
c:\TeamCity\buildAgent\work\44463130cd7383cb\LINQToTTree\LINQToTTreeLib\obj\x86\Release\LINQToTTreeLib.pdb: Cannot find or open the PDB file.
C:\WINDOWS\LINQToTTreeLib.pdb: Cannot find or open the PDB file.
C:\WINDOWS\symbols\dll\LINQToTTreeLib.pdb: Cannot find or open the PDB file.
C:\WINDOWS\dll\LINQToTTreeLib.pdb: Cannot find or open the PDB file.
C:\Users\Gordon\AppData\Local\Temp\SymbolCache\LINQToTTreeLib.pdb\9c883e0fa93245c99efd2b92dbfc6dfc1\LINQToTTreeLib.pdb: Cannot find or open the PDB file.
C:\Users\Gordon\AppData\Local\Temp\SymbolCache\MicrosoftPublicSymbols\LINQToTTreeLib.pdb\9c883e0fa93245c99efd2b92dbfc6dfc1\LINQToTTreeLib.pdb: Cannot find or open the PDB file.
C:\Users\Gordon\Documents\Code\HVQCDCorrelationStudy\LINQToTTreeLib.pdb: Cannot find or open the PDB file.
SYMSRV:  C:\Users\Gordon\AppData\Local\Temp\SymbolCache\LINQToTTreeLib.pdb\9C883E0FA93245C99EFD2B92DBFC6DFC1\LINQToTTreeLib.pdb not found


SYMSRV:  http://srv.SymbolSource.org/pdb/MyGet/gwatts/XXXXX/LINQToTTreeLib.pdb/9C883E0FA93245C99EFD2B92DBFC6DFC1/LINQToTTreeLib.pdb not found


http://srv.SymbolSource.org/pdb/MyGet/gwatts/XXXXX: Symbols not found on symbol server.
SYMSRV:  C:\Users\Gordon\AppData\Local\Temp\SymbolCache\LINQToTTreeLib.pdb\9C883E0FA93245C99EFD2B92DBFC6DFC1\LINQToTTreeLib.pdb not found


SYMSRV:  http://msdl.microsoft.com/download/symbols/LINQToTTreeLib.pdb/9C883E0FA93245C99EFD2B92DBFC6DFC1/LINQToTTreeLib.pdb not found


http://msdl.microsoft.com/download/symbols: Symbols not found on symbol server.

简而言之,它看起来正确地联系了symbolssource.org。但是那里有些东西失败了。 9C883E0FA93245C99EFD2B92DBFC6DFC1 显然是一个哈希。我不知道(??)分配给该库的哈希符号源 - 尽管我很想弄清楚,因为这可能是了解正在发生的事情的第一步。

基本上。我现在不知道如何进行调试。任何帮助将不胜感激!

更新:正如下面的答案中提到的,构建一些可以测试的小东西。我已经这样做了,而且效果很好。在此过程中,我发现 SymbolSource.org 上有一些调试工具 - 具体来说,当您查看提要中的包时,您可以找到“编译”链接。点击它。它应该为您上传的每种构建类型显示一行。我的包与此无关 - 所以我以某种方式弄乱了我的 nuspec 文件以生成符号。

【问题讨论】:

    标签: nuget symbol-server myget


    【解决方案1】:

    尝试隔离可重现的场景(尽可能多地排除其他因素)。听起来您的 Visual Studio 设置是正确的,所以我怀疑包或编译问题(例如符号和源不同步)。请随时联系MyGet support 以获得进一步帮助。

    【讨论】:

    • 谢谢。在我努力的过程中添加更多数据。
    【解决方案2】:

    事实证明,答案是一块不起眼的馅饼。结果在我的构建服务器上存在环境变量冲突。结果是本地构建脚本很好地构建了一个符号文件,而构建服务器构建了一个没有 PDB 的文件。如果没有 pdb,源服务器当然不能做很多事情。

    我在路上学到的一件事是 NuGet PackageExplorer (https://npe.codeplex.com/)。想要你能做的就是用它来加载 nugget 符号包。然后使用插件管理器加载 SymbolesSource 插件(您必须使用市场,但它都是免费的)。如果我向它提交了正确的,这个实用程序会在我的包中发现问题(我的本地包以出色的方式通过)。

    【讨论】:

      猜你喜欢
      • 2019-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多