ホームページ >バックエンド開発 >C#.Net チュートリアル >.net 開発プロセス中の Bin ディレクトリにあるいくつかのファイル形式の概要
.NET 開発では、bin ディレクトリの下に次のような種類のファイルがよく見られます:
.pdb、.xsd、.vshost.exe、.exe、.exe.config、.vshost.exe.config
がリリースされても、何が必要で何が不要なのかが不明瞭になることがよくあります。では、これらの形式のファイルは正確に何に使用されるのでしょうか?
pdb
.pdbファイルはシンボルファイル(プログラム)です データベース)、デバッグ情報を保存します。 VS のプロジェクト プロパティで、C/C++、デバッグ情報形式、/Zi を設定すると、VS はプロジェクトのビルド時に PDB ファイルを作成します。
ここでは 2 つの状況を区別する必要があります:
1. 静的ライブラリを構築する場合、プロジェクト プロパティ –> C/C++ –> プログラム データベース名を使用できます。 生成される pdb ファイルの名前を設定します。指定しない場合、デフォルトで VCx0.pdb として生成されます。たとえば、VS2005 を使用する場合は、VC80.pdb が生成されます。ここに生まれる 質問があります。静的ライブラリをコンパイルするときにデフォルトで生成される .pdb ファイルの名前はすべて同じです。この静的ライブラリを参照するプロジェクトは、最終的に正しい .pdb ファイルを見つけることができますか?答えは「はい」です。VS が生成されたファイルに埋め込むからです。 .pdb ファイルへのパス。
たとえば、Project/ToolA の下に静的ライブラリ ToolA.lib が構築され、これに対応して vc80.pdb が Project 内に生成されます。 /ToolB の下に静的ライブラリ ToolB.lib が構築され、それに対応して vc80.pdb が生成されます。次に、最終プロジェクト Work.exe は、これら 2 つの静的ライブラリを同時にリンクします。 Work.pdb になると、それに対応するシンボル ファイル パス Project/ToolA/vc80.pdb と ToolB.lib が ToolA.lib 内に見つかります。 対応するシンボル ファイル パス Project/ToolB/vc80.pdb がマージされ、最終プロジェクトの Work.pdb が生成されます。
2. 実行可能ファイルまたは動的ライブラリをビルドします。この場合、コンパイラーは .pdb ファイルを生成し、コンパイラーによって生成された pdb ファイルはプロジェクトのプロパティ –> にあります。 ; C/C++ -> 出力ファイル -> リンカーによって生成された .pdb ファイルは、プロジェクトのプロパティで設定できます。 デバッグ情報の生成 (Yes に設定)、プログラム データベース名の設定を生成します。
これら 2 つの pdb ファイルの違いは何ですか?コンパイラによって生成される pdb ファイルにも、デフォルトでは vcx0 という名前が付けられます。コンパイル プロセス中に、コンパイラは各 .obj ファイルに対応するシンボル情報を保存しますが、関数定義は含まれません。リンカーによって生成される .pdb ファイルには、デフォルトでプロジェクト名が付けられ、プロジェクトのリンク時にコンパイラーによって生成される vcx0.pdb に基づいてリンカーによってさらに処理されます。 シンボル ファイルに関する完全な情報が付属します。リンカーが各 .obj ファイルに基づいて exe または dll を生成するのと同じように、コンパイラーによって生成される .pdb ファイルはコンパイルリンク プロセスの中間生成物であり、最終的に使用されます。 デバッガはリンカによって生成された ProjectName.pdb です。 上記は pdb ファイルの生成規則です。これを使用すると、ファイルに対応する pdb ファイルのパスがデバッグ中に取得され、exe または dll の場合はそのパス (絶対パス) に移動して検索します。 自分でコンパイルしたので、どこに置いても、pdb ファイルが移動しない限り、デバッガーはそれを見つけることができます。デバッガーがそのパスで見つからない場合は、exe または dll と同じレベルのディレクトリを検索します。例えばこんな仕事 プログラムは他の人によってコンパイルされ、シンボル ファイルと一緒に送信されます。シンボル ファイルを exe または dll と同じディレクトリに置く限り、デバッガもそれを見つけることができます。もちろん、デバッガでシンボルを自分で指定することもできます。 ファイルパス
XSD
XSDはXMLスキーマ定義を指します
XMLスキーマはDTDの代替です。 XML Schema言語もXSDです。
XML スキーマは、XML ドキュメントの構造を記述します。指定したXMLを使用できます XML ドキュメントを検証して、XML ドキュメントが要件を満たしているかどうかを確認するためのスキーマ。ドキュメント設計者は XML を使用できます スキーマは、XML ドキュメントで許可される構造とコンテンツを指定し、XML ドキュメントが有効かどうかを確認するために使用できます。 XML スキーマ自体は XML ドキュメントであり、XML 構文構造に準拠しています。これは、一般的な XML パーサーで解析できます。
XML スキーマは、ドキュメントに表示される要素、ドキュメントに表示される属性、サブ要素、サブ要素の数、サブ要素の順序、要素が空かどうか、要素と属性のデータ型を定義します。要素または属性のデフォルト値と固定値。
XSD が DTD に代わる理由は次のとおりです。第一に、将来の状況に応じて拡張可能であること、第二に、DTD よりも機能が豊富で便利であること、第三に、XML で記述されていること、第四に、データ型をサポートしていること、 5 番目に、名前空間をサポートします。
XSD ファイルの拡張子は .xsd です。
XML スキーマの利点:
1) XML スキーマは XML に基づいており、特別な構文はありません
2) XML は他の XML ファイルと同様に解析および処理できます
3) XML スキーマは一連のデータ型 (int 、float 、Boolean、date など)
4) XML スキーマは拡張可能なデータ モデルを提供します。
5) XML スキーマは包括的な名前空間をサポートします。
6) XML スキーマは属性グループをサポートします。
.vshost.exe および .exe
.vshost.exe は、名前が示すように、vs が実行およびデバッグしているときに実際に開かれるのはこのファイルです。ホストプロセスは Visual Studio 2005/2008/2010/201x の機能。デバッグのパフォーマンスを向上させ、部分信頼デバッグをサポートし、デザイン時の式の評価をサポートします。
ホストプロセスファイルのファイル名には次のものが含まれます vshost であり、プロジェクトの出力フォルダーにあります。 exe は直接開くことができますが、vs はこのファイルの実行ステータスを追跡しません。参照されたアセンブリが完了している限り、それを直接実行できます。
.exe.config と .vshost.exe.config の違い
.exe.config は、非デバッグ時の設定ファイルです。
vshost.exe.config は、デバッグ中に生成され、デバッグに使用される一時ファイルです。
フォルダー内の vshost.exe.config ファイルの内容は .exe.config とまったく同じです。これは主にホスト プロセスのデバッグに使用され、アプリケーションを通じて直接実行または展開しないでください。
以上がこの記事の内容です