2013-10-21 59 views
1

我在myget(ci的一部分)上创建了一个库,并且我试图将这些符号源推送到symbolsource.org(这是一个很棒的服务,我喜欢这个主意)。这是我第一次尝试。我一直在使用myget站点上的说明:http://docs.myget.org/docs/reference/symbolsource,但有一些差距。MyGet&SymbolSource.org:VS2012找不到pdb

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

我用下面的命令来推symbolsource:

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

我再配置Visual Studio中的指示:一定要关闭“启用仅我的代码”,并打开符号服务器上。我再加入到符号服务器列表如下网址:

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显然是一个散列。我不知道(??)什么哈希symbolssource分配给该库 - 虽然我想尝试弄清楚,因为这可能是了解发生的第一步。

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

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

回答

0

事实证明,答案是一片卑微的馅饼。在我的构建服务器上发现存在环境变量冲突。结果是本地构建脚本构建了一个符号文件,并且构建服务器在没有PDB的情况下构建了它。当然,如果没有pdb的话,源服务器不能做得太多。

我在途中学到的一件事是NuGet PackageExplorer(https://npe.codeplex.com/)。希望你能做的就是用它来加载块金符号包。然后使用插件管理器加载SymbolesSource插件(您将不得不使用市场,但它都是免费的)。如果我提交了正确的文件(我的本地包通过飞行颜色传递),此实用程序会在我的包中发现问题。

1

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

+0

谢谢。当我朝着一个方向努力时,添加更多数据。 – Gordon