web-dev-qa-db-ja.com

C#リリースバージョンには、まだ.pdbファイルがあります

C#で作成したアプリケーションのリリースバージョンをデプロイしたい。

Release configを使用してビルドすると、.pdbファイルが作成されていることがわかります。これは、アプリケーションを引き続きデバッグできることを意味します。これはまた、デバッグ情報がコードのどこかに存在することを意味し、少し遅くなります。

これが当てはまる場合、バイナリで生成されたデバッグ情報を完全に抑制するにはどうすればよいですか?リリース.pdbを持っている理由も知っていますか? Release構成にはOptimize codeがチェックされており、TRACEではなく、DEBUG定数のみが定義されています。

ご協力いただきありがとうございます。

Pdbファイルの生成を無効にする場合は、Buildタブの下部にある"Advanced build settings"ボタン」をクリックした後、プロジェクトプロパティで使用可能な"Advanced..."ダイアログを使用する必要があります。

リリースビルド構成のOutput - Debug info:Noneに設定すると、pdbファイルは生成されません。

95
Marek

デフォルトでは、リリースビルド用のPDBも生成されます。これは機能であり、無効にしないでください。 PDBを生成するということは、デバッグ時により多くの情報を取得できることを意味します。コードのパフォーマンスは、PDBファイルの存在による影響を受けません。

48
Brian Rasmussen

リリース展開で.PDBを出荷する必要はありませんが、保持するのに役立ちます。たとえば、マシンのPDBを使用して別のマシンで実行されているコードをリモートでデバッグし、例外の行番号を取得できます。起こる。

.PDBを使用しないと、行番号とファイル名がスタックトレースに含まれないため、デバッグがはるかに困難になります。

13
Andy Shellam

ビルド->詳細...->デバッグ情報:の下のプロジェクトプロパティでpdb /シンボル生成を制御します。オプションは次のとおりです。

  • none(シンボル情報なし)
  • full(.pdbが生成され、一部のシンボル情報がアセンブリに埋め込まれます)
  • pdb-only(.pdbが生成されますが、アセンブリは影響を受けません)

詳細については、 http://msdn.Microsoft.com/en-us/library/8cw0bt21%28VS.80%29.aspx を参照してください。

Istronglypdb-onlyオプションを選択することをお勧めします。notアセンブリに影響を与えずにシンボル情報を提供するため、noneオプション-これは、リリースビルドの現在の設定であることがわかります。

13
Justin