66

C#で実行したアプリケーションのリリースバージョンをデプロイしたいと思います。

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

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

助けてくれてありがとう。

4

5 に答える 5

108

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

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

于 2010-03-03T12:14:01.973 に答える
50

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

于 2010-03-03T12:16:38.490 に答える
18

リリースデプロイメントに.PDBを同梱する必要はありませんが、維持しておくと便利です。たとえば、マシンのPDBを使用して別のマシンで実行されているコードをリモートでデバッグし、例外の場所の行番号を取得できます。起こる。

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

于 2010-03-03T12:17:53.280 に答える
13

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

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

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

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

于 2010-03-03T13:23:38.623 に答える
7

コンパイラに.pdbファイルを生成させることは、コードを最適化させることと相互に排他的ではありません。

このテーマの詳細については、これらのブログ エントリをお読みください。

于 2010-03-03T12:12:43.520 に答える