69

チームが使用するライブラリを、TeamCity からネットワーク フォルダーにデプロイされる nuget パッケージに入れました。ただし、このコードにデバッグすることはできません! SymbolSource は私が読んだ 1 つのソリューションですが、TeamCity から直接 .pdb/source ファイルにアクセスする方法を見つけたいと思っています。誰もこれを行う方法を知っていますか?

編集。 Nuget Pack ビルド ステップをチェックインする'Include Symbols and Source'と、TeamCity はネットワーク フォルダーに .nupkg ファイルに加えて .Symbol.nupkg を作成します。.Symbol.nupkg には、src と .pdb ファイルが含まれています。

編集。 TeamCity のチェック'Include Symbols and Source'を外し、nuspec ファイルに以下を追加しました。

  <files>
    <file src="..\MyLibrary\bin\release\MyLibrary.dll" target="lib\net40" />
    <file src="..\MyLibrary\bin\release\MyLibrary.pdb" target="lib\net40" />
    <file src="..\MyLibrary\*.cs" target="src" />
    <file src="..\MyLibrary\**\*.cs" target="src" />
  </files>

これにより、ライブラリのdll、pdb、およびソースファイルがnugetパッケージに追加され、シンボルサーバーにのみ必要と思われる.Symbolsファイルが生成されませんでした。

4

10 に答える 10

29

最新バージョンの dotPeek (無料!) は、シンボル サーバーとして機能し、その場で pdb ファイルを生成できます。これにより、teamcity を介して提供される dll をデバッグできるようになりました。

ここからダウンロードしてください:

http://blog.jetbrains.com/dotnet/2014/04/09/introducing-dotpeek-1-2-early-access-program/

設定方法の説明はこちら。

https://web.archive.org/web/20160220163146/http://confluence.jetbrains.com/display/NETCOM/dotPeek+Symbol+Server+and+PDB+Generation

于 2014-05-27T16:10:02.293 に答える
8

もちろん、独自のシンボル サーバーをセットアップして構成することもできますが、おそらく最も簡単なのは...

  1. Inedoの ProGet をダウンロードしてインストールする
  2. ターゲット フィードでシンボル サービングを有効にする
  3. TeamCity から ProGet フィードにパッケージを公開する
  4. ProGet をプライマリ フィード ソースとして使用します (nuget.org を含む複数のフィードを集約できるため)。

これらはすべて無料版の ProGet で実行できます。


免責事項 -- 私の本業は伊根堂です。

于 2014-02-18T17:27:22.907 に答える
3

パッケージのソース コードがある場合、確実な (しかし面倒な) 方法は次のとおりです。

  1. パッケージのソース コードをソリューションに追加します (ソリューションを右クリック -> 既存のプロジェクトを追加)。
  2. ソリューション内のすべてのプロジェクトに目を通し、ライブラリへの NuGet 参照を削除します (つまり、各プロジェクトの [参照] フォルダーを開き、パッケージへの参照を削除します)。次に、ソリューション内の NuGet パッケージ プロジェクトへの参照を追加します。(つまり、[参照] を右クリックして [参照] を追加し、[プロジェクト] を選択して、プロジェクトのボックスにチェックを入れます)

NuGet パッケージ内でデバッグしたいメソッドが、コードではなくフレームワークによって呼び出されたため、この方法で実行する必要があったため、ステップインできませんでした。(私の場合、メソッドは ASP.NET DelegatingHandler でした)。

完了したら、NuGet パッケージが正しく参照されるように、ソース管理を介してすべての変更を元に戻す必要があります。

于 2016-02-18T15:50:30.203 に答える
2

この質問が最初に投稿されて以来、Jetbrains はこれを達成する方法についてブログ投稿全体を書いています。手順は次のように要約できます。

  • エージェントにDebugging Tools for Windowsをインストールします。
  • Symbol Server プラグインをインストールして有効にします。
  • Symbol Files Indexer ビルド機能をビルド構成に追加します。
  • PDB ファイルがアーティファクトとして出力されるようにします。
  • TeamCity をソース サーバーとして使用するように Visual Studio を構成します。

Nuget パッケージ ビルド ステップを使用している場合は、[シンボルとソースを含める] を.symbol.nupkgオンにして、PDB を含むファイルを出力できます。Symbol Files Indexer がこのファイル内を調べるのに十分なほどスマートであるかどうかに応じて、動作させるためにファイル拡張子を変更する必要がある場合があります。

詳細については、 https ://blog.jetbrains.com/teamcity/2015/02/setting-up-teamcity-as-symbol-and-source-server/ をご覧ください。

于 2015-11-11T20:15:31.597 に答える