web-dev-qa-db-ja.com

nuget(nupkg)ファイルにpdbファイルを含める

MSBuildを使用して、nugetパッケージを生成しています。

デバッグ中にソースにステップインするために.pdbファイルを含めるために設定する必要があるコマンドはありますか?

Nugetパッケージを取り込むプロジェクトにソースファイルを含めたくありません。

31
monstertjie_za

デバッグには役立たないかもしれませんが、スタックトレースに行番号が含まれるように.pdbファイルを含めることは間違いなく便利です。

Nuspecファイルに、<files>要素(<package>の子、<metadata>の兄弟)を含めます。これは私のクラスライブラリの1つにあるものです。

<files>
    <file src="bin\$configuration$\$id$.pdb" target="lib\net452\" />
</files>

ターゲットが、パッケージ内の.dllファイルが置かれているフォルダーと同じフォルダーであることを確認してください。

26
Jeff Shepler

VS2017 15.4以降を使用している場合、プロジェクトファイルでMSBuildプロパティを定義できます。

<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>

これは NuGet#4142 で説明されています

27
Paul Hatcher

新しいcsproj形式では、MSBuildがほとんどの作業を行うため、NuGetの作成は非常に簡単です。

pdbファイルを含めるには、タグを入力するだけです

<IncludeSymbols>true</IncludeSymbols>

パックしているプロジェクトのcsprojファイルのプロパティグループ。これにより、追加の.symbols.nupkgパッケージ。これを(デバッグ)フィードにリリースできます。

3
Josef Ginerman

このリンク を参照してください。実際には、コマンドの最後に-Symbolsを追加して、シンボルパッケージを作成する必要があります。メインのnugetパッケージにpdbファイルを追加しないでください。

2
Milad