「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
- NuGetパッケージで展開されているモジュール内の
デバッグ実行が必要になった時の手順も確立しておく必要がある。
- 以下の2つの方法がある。
- (Primary packageに)PDBを同梱
- Symbol Packageを利用
パッケージの登録 †
(Primary packageに)PDBを同梱する方法 †
「NuGetパッケージの開発と公開」を参照。
ポイント †
手順 †
- パッケージ名
{identifier}.nupkg
Symbol Packageを利用する方法 †
NuGetは、Symbol Packageを作成し、
「ソース サーバ」、「シンボル サーバ」に公開することもサポート
ポイント †
- *.dll、*.pdb、*.xmlに加え、ソースファイル(任意)を同梱。
- libフォルダの構造はPrimary packageと完全に同じにする。
- 追加で、ソースファイルのルートフォルダをsrcに指定する。
準備 †
- nuspecファイルは、Primary PackageとSymbol Packageで共有(1つ)で良い(理由は後述)。
- 「src="**\*.cs"」の「**」は、再帰的にフォルダを検索することを意味するので、
- パッケージ名
{identifier}.symbols.nupkg
登録 †
- 概要
- NuGetプロトコルを実装するnuget.exe v4.1.0以上を使用
- Primary package、Symbol Packageの両方をプッシュ
Primary package、Symbol Packageの両方を、同時に両方のRepositoryにプッシュすることもできる。
nuget push *.nupkg
※ https://nuget.smbsrc.net/ は、symbolのプッシュURL。
ハイブリッドな方法 †
以下の登録手順で、Primary packageのPDBとSymbol Packageを切替え可能にできる。
nspecを2つ用意する。 †
※ Primary packageで、pdbの場所を外すのは、
PDB同梱パターンと、Symbol Packageパターンを切り替え可能にするため。
其々、Package化する。 †
※ このため、出力先を分けるといい。
Push前の確認。 †
必要に応じて、Push前の確認を行う。
其々、Pushする。 †
※ Symbol PackageフォルダにPrimary packageは不要。
パッケージのデバッグ †
(Primary packageに)PDBを同梱 †
- *.pdbファイルが同梱されていれば、そのままデバッグ可能。
- ただし、ソースファイルの配置については考慮が必要。
Symbol Packageを利用 †
- *.pdbファイルとソース ファイルを自動的に取得してソース コードのステップ インが可能
ハイブリッドな方法の場合のデバッグ方法の切替 †
既定 †
切替 †
- Primary packageのPDBに切り替える。
- 「ソース サーバ」、「シンボル サーバ」を無効にする。
- [シンボル ファイル (.pdb) の場所]に、Primary packageのPDBパスを指定する。
- ローカルにファイルを配置する。
- nuget.smbsrc.netのSymbol Packageに戻す。
変更 †
Symbolの公開URLの変更 †
最近、Symbolの公開URLが
変更になったもよう。
Symbolの作成・登録と更改URLの変更 †
- 最近、Symbolの作成・登録と更改URLが変更になったもよう。
ハイブリッドな方法で、PDBを避けていた、Primary packageが不要になり、
「-SymbolPackageFormat? snupkg」オプションを追加するだけで、
PrimaryとSymbolのpackageの両方が生成可能になり、また、
登録処理をPrimaryとSymbolの2回に分けて実行する必要がなくなった。)
参考 †
Microsoft Docs †
デバッグ可能なNuGetパッケージのサンプル †
https://github.com/OpenTouryoProject/SampleProgram/tree/master/NuGet
Tags: :.NET開発, :デプロイ, :デバッグ, :NuGet