1

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 ページにある手順を使用して自分のパッケージがそこに表示されます。

次のコマンドを使用して、symbolsource にプッシュしました。

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 の "Your Account"/"Authentication" "Visual Studio" テーブル エントリを読み取りました (myget は、これが私がすべきことであることがまったく明確ではありませんでした)。

次に、デバッグを試みます。そのライブラリで何かをヒットすると、VS2012 で "No Symbols Loaded" ページが表示されます。詳細の下に、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.

つまり、symbolsource.org に正しく接続しているように見えます。しかし、そこで何かが失敗しています。9C883E0FA93245C99EFD2B92DBFC6DFC1 は明らかにハッシュです。そのライブラリにどのハッシュ シンボルソースが割り当てられているかわかりません (??)。

基本的。この時点でデバッグを続行する方法がわかりません。どんな助けでも大歓迎です!

更新:以下の回答で述べたように、テストできる小さなものを構築してください。私はそれをしました、そしてそれはうまくいきます。そうするうちに、SymbolSource.org にいくつかのデバッグ ツールがあることを発見しました。具体的には、フィード内のパッケージを見ると、「コンパイル」リンクを見つけることができます。クリックして。アップロードした各ビルド タイプの行が表示されます。私のパッケージにはそれに関連するものは何もないので、シンボル生成のために何らかの方法で nuspec ファイルを台無しにしてしまいました。

4

2 に答える 2

1

再現可能なシナリオを切り分けるようにしてください (できるだけ多くの他の要因を除外してください)。あなたの Visual Studio の設定は正しいようですが、パッケージまたはコンパイルの問題 (シンボルとソースの同期が取れていないなど) が疑われます。さらに支援が必要な場合は、 MyGet サポートにお気軽にお問い合わせください。

于 2013-10-22T08:37:26.760 に答える
0

答えは、控えめなパイのスライスであることが判明しました。ビルド サーバーで環境変数の競合が発生しました。その結果、ローカル ビルド スクリプトは問題なくシンボル ファイルをビルドし、ビルド サーバーは PDB を含まないシンボル ファイルをビルドしました。もちろん、pdb がなければ、ソース サーバーはあまり機能しませんでした。

途中で学んだことの 1 つは、NuGet PackageExplorer ( https://npe.codeplex.com/ ) です。あなたができることは、それを使用してナゲット シンボル パッケージをロードすることです。次に、プラグイン マネージャーを使用して、SymbolesSource プラグインを読み込みます (マーケット プレイスを使用する必要がありますが、すべて無料です)。このユーティリティは、適切なパッケージを提出していれば、私のパッケージの問題をキャッチしていたはずです (私のローカル パッケージは見事に合格しました)。

于 2013-10-25T02:46:31.430 に答える