Azure Pipelines でシンボルを公開する
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Azure Pipelines では、"ソースのインデックス作成とシンボルの公開" タスクを使って、シンボルを Azure Artifacts シンボル サーバーに公開できます。 製品名、ビルド番号、またはパッケージ名を知らなくても、デバッガーを使って接続し、正しいシンボル ファイルを自動的に取得できます。 Azure Pipelines を使って、シンボルをファイル共有とポータブル PDB に公開することもできます。
注意
ソースのインデックス作成とシンボルの公開タスクは、リリース パイプラインではサポートされていません。
Azure Artifacts シンボル サーバーにシンボルを公開する
Azure DevOps 組織にサインインしてから、プロジェクトに移動してください。
[Pipelines] を選択し、ご自分のパイプラインを選んで、[編集] を選択してご自分のパイプラインを変更してください。
パイプライン定義から、
+
を選択して新しいタスクを追加します。[ソースのインデックス作成とシンボルの公開] タスクを検索します。 [追加] を選択してパイプラインに追加します。
必須フィールドに以下のとおり入力します。
[タスクのバージョン]: [2.\*]。
[表示名]: タスクの表示名。
[シンボル フォルダーへのパス]: シンボル ファイルをホストしているフォルダーへのパス。
[検索パターン]: [シンボルフォルダへのパス] で指定したフォルダー内の .pdb ファイルを見つけるために使用するパターン。 単一フォルダーのワイルドカード (
*
) と再帰的なワイルドカード (**
) が両方ともサポートされています。 例: *\bin**.pdb: bin という名前のすべてのサブディレクトリ内のすべての .pdb ファイルを検索します。[ソースのインデックスを作成する]: PDB ファイルにソース サーバーの情報を挿入するかどうかを示します。
[シンボルを公開する]: シンボル ファイルを公開するかどうかを示します。
- [シンボル サーバーの種類]: [Symbol Server in this organization/collection (requires Azure Artifacts)] (この組織/コレクション内のシンボル サーバー (Azure Artifacts が必要)) を選択して、シンボルを Azure Artifacts シンボル サーバーに公開します。
[詳細なログ]: ログに詳細情報を含めます。
シンボルをファイル共有に公開する
Azure Artifacts シンボル サーバーとは別に、"ソースのインデックス作成とシンボルの公開" タスクを使って、シンボルをファイル共有に公開することもできます。
Azure DevOps 組織にサインインしてから、プロジェクトに移動してください。
[Pipelines] を選択し、ご自分のパイプラインを選んで、[編集] を選択してご自分のパイプラインを変更してください。
パイプライン定義から、
+
を選択して新しいタスクを追加します。[ソースのインデックス作成とシンボルの公開] タスクを検索します。 [追加] を選択してパイプラインに追加します。
必須フィールドに以下のとおり入力します。
[タスクのバージョン]: [2.\*]。
[表示名]: タスクの表示名。
[シンボル フォルダーへのパス]: シンボル ファイルをホストしているフォルダーへのパス。
[検索パターン]: [シンボルフォルダへのパス] で指定したフォルダー内の .pdb ファイルを見つけるために使用するパターン。
[ソースのインデックスを作成する]: PDB ファイルにソース サーバーの情報を挿入するかどうかを示します。
[シンボルを公開する]: シンボル ファイルを公開するかどうかを示します。
- [シンボル サーバーの種類]: [ファイル共有] を選択して、シンボルをファイル共有に公開します。
- [シンボルを公開するためのパス]: シンボルをホストするファイル共有。
[詳細なログ]: オンにして、ログに詳細情報を含めます。
ポータブル PDB を Azure Artifacts シンボル サーバーに公開する
ポータブル PDB は、Windows でのみ使用される従来の PDB とは異なり、すべてのプラットフォームで作成および使用できるシンボル ファイルです。 ポータブル PDB の場合、ビルドによってインデックス作成が行われますが、引き続き [ソースのインデックス作成とシンボルの公開] タスクを使ってシンボルを公開する必要があります。
.NET プロジェクトで Source Link を使う
Source Link は、開発者が .NET アセンブリからソース コードにマッピングしてソース コードをデバッグできるようにする一連のツールです。 含まれているさまざまなパッケージについては、dotnet/sourcelink GitHub リポジトリを参照してください。
GitHub でホストされているプロジェクトの場合は、プロジェクト ファイルに
Microsoft.SourceLink.GitHub
パッケージ参照を追加します。<ItemGroup> <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1" PrivateAssets="All"/> </ItemGroup>
Azure Repos (従来の Visual Studio Team Services) でホストされているプロジェクトの場合は、
Microsoft.SourceLink.AzureRepos.Git
パッケージ参照をプロジェクト ファイルに追加してください。<ItemGroup> <PackageReference Include="Microsoft.SourceLink.AzureRepos.Git" Version="1.1.1" PrivateAssets="All"/> </ItemGroup>
Azure DevOps Server (従来の Team Foundation Server) でホストされているプロジェクトの場合は、
Microsoft.SourceLink.AzureDevOpsServer.Git
パッケージ参照をプロジェクト ファイルに追加してください。<ItemGroup> <PackageReference Include="Microsoft.SourceLink.AzureDevOpsServer.Git" Version="1.1.1" PrivateAssets="All"/> </ItemGroup>
公開タスクを設定する
[ソースのインデックス作成とシンボルの公開] タスクは、ソース コードのインデックスを作成し、シンボルを Azure Artifacts シンボル サーバーとファイル共有に公開するために使用されます。 Source Link を使うため、公開タスクでインデックス作成を無効にする必要があります。
Azure DevOps 組織にサインインしてから、プロジェクトに移動してください。
[Pipelines] を選択し、ご自分のパイプラインを選んで、[編集] を選択してご自分のパイプラインを変更してください。
パイプライン定義から、
+
を選択して新しいタスクを追加します。[ソースのインデックス作成とシンボルの公開] タスクを検索します。 [追加] を選択してパイプラインに追加します。
必要なフィールドに入力し、[シンボル サーバーの種類] として [シンボル サーバー] を選択してください。 インデックス作成を無効にするには、必ず [ソースのインデックス作成] をオフにしてください。
重要
[ソースのインデックス作成とシンボルの公開] タスクを使用して公開されたシンボルを削除するには、最初にそれらのシンボルを生成したビルドを削除する必要があります。 これを行うには、アイテム保持ポリシーを使うか、手動で実行を削除します。
Visual Studio を設定する
Note
Visual Studio for Mac では、シンボル サーバーを使ったデバッグはサポートされていません。
Azure Artifacts シンボル サーバーからシンボルを使い始める前に、Visual Studio が正しく設定されていることを確認しましょう。
Visual Studio で、[ツール]、[オプション] の順に選択します。
[デバッグ] メニューから [シンボル] を選択します。
[
+
] 記号を選択して、新しいシンボル サーバーの場所を追加します。新しいダイアログ ボックスが表示されるので、ドロップダウン メニューからアカウントを選択し、接続する組織を選択してください。 完了したら、[接続] を選択してください。
同じ [デバッグ] セクションから [全般] を選択します。 下にスクロールし、[ソース リンクのサポートを有効にする] をオンにして、ポータブル PDB のサポートを有効にします。
Note
[ソース サーバーのサポートを有効にする] オプションをチェックすると、ローカルでソース コードが使用できない場合、またはシンボル ファイルがソース コードに一致しない場合に[ソース サーバー] を使用できます。 サード パーティのソース コード デバッグを有効にする場合は、[マイ コードのみを有効にする] チェック ボックスを選択解除してください。
よく寄せられる質問
Q: シンボルはどのくらいの期間保持されますか?
A: シンボル ファイルの保持期間は、それを生成したビルドと同じです。 手動で、またはアイテム保持ポリシーを使ってビルドを削除すると、そのビルドによって生成されたシンボルも削除されます。
Q: .NET Core アセンブリから生成されたポータブル PDB でソースのインデックス作成を使用できますか?
A: 現時点ではできません。 現在、ソースのインデックス作成はポータブル PDB ではサポートされていません。 推奨される方法は、インデックス作成を実行するようにビルドを構成することです。