ファイルのプロパティ

更新 : 2007 年 11 月

ファイルのプロパティを使用して、プロジェクト システムがファイルに対して実行するアクションを指定できます。たとえば、ファイルのプロパティを設定することにより、ファイルをリソースとしてビルド出力にコンパイルしたり埋め込んだりするかどうかを指定できます。

ソリューション エクスプローラでファイルを選択し、[プロパティ] ウィンドウでそのプロパティを調べることができます。Visual Basic および Visual C# のファイルには、FileName (ファイル名)、BuildAction (ビルド アクション)、CustomTool (カスタム ツール)、および CustomToolNamespace (カスタム ツールの名前空間) という 4 つのプロパティがあります。

0c6xyb66.alert_note(ja-jp,VS.90).gifメモ :

BuildAction プロパティ、CustomTool プロパティ、および CustomToolNamespace プロパティは、高度なシナリオのために用意されています。通常は、既定の値で十分であり、変更する必要はありません。

FileName プロパティ

[プロパティ] ウィンドウの [ファイル名] プロパティをクリックして新しい名前を入力すると、ファイルの名前を変更できます。ファイルの名前を変更すると、関連付けられているすべての .vb ファイルまたは .resx ファイルの名前が自動的に変更されるので注意してください。

BuildAction プロパティ

BuildAction (ビルド アクション) プロパティは、ビルドが実行されたときのファイルの処理方法を示します。BuildAction には次のいずれかの値を指定できます。

  • None (なし) - ファイルをプロジェクト出力グループに含めず、ビルド処理でコンパイルしません。例として、ドキュメントを含むテキスト ファイル (Readme ファイルなど) があります。

  • Compile (コンパイル) - ファイルをビルド出力にコンパイルします。この設定は、コード ファイルで使用します。

  • Content (コンテンツ) - ファイルはコンパイルしませんが、コンテンツ出力グループに入ります。たとえば、この設定は .htm ファイルやその他の Web ファイルに対する既定値です。

  • Embedded Resource (埋め込まれたリソース) - このファイルはメイン プロジェクトのビルド出力に DLL または実行可能ファイルとして埋め込まれます。一般に、リソース ファイルに使用します。

BuildAction の既定値は、ソリューションに追加するファイルの拡張子によって異なります。たとえば、ソリューション エクスプローラに Visual Basic プロジェクトを追加した場合、BuildAction の既定値は Compile になります。これは、拡張子 .vb が、コンパイル可能なコード ファイルであることを示しているためです。ファイル名と拡張子はソリューション エクスプローラに表示されます。

プロジェクトのファイルの名前がアセンブリ マニフェストの管理するリソースの識別子にならないことに注意してください。詳細については、「アセンブリ マニフェスト」を参照してください。識別子は、namespace.filename.extension になります。namespace は、Visual C# プロジェクトでは DefaultNamespace プロパティの値、Visual Basic プロジェクトでは RootNamespace プロパティの値です。Filename および extension は元の指定内容のままです。ファイルが .resx ファイルである場合は、プロジェクト システムがファイルに対して resgen.exe を実行し、リソース ファイルを作成します。リソース ファイルはアセンブリに埋め込まれます。このため、アセンブリ マニフェストは .resx ファイルではなく .resources ファイルを参照します。

たとえば、既定の名前空間が MyProj であるプロジェクトに MyFile.bmp ファイルを追加し、ビルド アクションを Embedded Resource に設定した場合は、MyProj.MyFile.bmp がアセンブリ マニフェストの識別子になります。次に、MyFile.resx ファイルをプロジェクトに追加すると、既定のビルド アクションは Embedded Resource になり、MyProj.MyFile.resources がアセンブリ マニフェストの識別子になります。

.resx ファイルはイメージ ファイルを参照するため、リソース エディタによってイメージが追加されると、[ビルド アクション] は [なし] に設定されます。ビルド時に、イメージは、.resx ファイルから作成された .resources ファイルに取り込まれます。このイメージには、.resx ファイル用に自動生成された厳密に型指定されたクラスから簡単にアクセスできます。したがって、この設定を Embedded Resource に変更しないでください。変更すると、イメージがアセンブリに 2 回取り込まれます。

実行時にリソース ファイル (.resx ファイルからコンパイルされたファイル) にアクセスする方法の詳細については、「ResourceManager クラス」を参照してください。実行時に他のすべての埋め込まれたファイルおよびリソースにアクセスする方法の詳細については、「Assembly.GetManifestResourceStream メソッド」を参照してください。

CopyToOutputDirectory プロパティ

このプロパティは、選択したソース ファイルを出力ディレクトリにコピーする際の条件を指定します。ファイルを出力ディレクトリにコピーしない場合は [コピーしない] を選択します。ファイルを常に出力ディレクトリにコピーする場合は [常にコピーする] を選択します。出力ディレクトリに既に存在する同じ名前のファイルよりも新しいときにのみファイルをコピーする場合は、[新しい場合はコピーする] を選択します。

0c6xyb66.alert_note(ja-jp,VS.90).gifメモ :

スマート デバイス プロジェクトで、.dll ファイルまたは .exe ファイルが新しいかどうかは、Win32 バージョンを次のように比較して判別されます。

デバイス側のバージョンがデスクトップのバージョンよりも小さい場合、ファイルはコピーされます。

デバイス側のバージョンがデスクトップのバージョンよりも大きい場合、ファイルはコピーされません。

バージョンが同じ場合は、チェックサムが比較されます。チェックサムが一致する場合、ファイルはコピーされません。チェックサムが異なる場合、ファイルはコピーされます。

.dll や .exe 以外のファイルの場合、新しいかどうかはチェックサムのみに基づいて判別されます。

0c6xyb66.alert_note(ja-jp,VS.90).gifメモ :

データ ファイルは、出力ディレクトリ内の Data Files という名前のサブフォルダにコピーされます。

CustomTool プロパティ

カスタム ツールは、実行時に、ある種類のファイルを別の種類のファイルに変換する場合に使用できるコンポーネントです。たとえば、カスタム ツールの 1 つとして、XML スキーマ (.xsd) ファイルを読み込み、プログラムによってテーブルと列を公開するクラスをコード ファイル内に生成する、データセット コード ジェネレータが考えられます。製品内にカスタム ツールの定義済みリストがあり、このプロパティで、ファイルに適用できるカスタム ツールを確認できます。まれに、このプロパティの値を変更することが必要な場合もあります。このプロパティの値は、空白にするか、または組み込みのカスタム ツールの 1 つにする必要があります。

カスタム ツールを設定または変更するには、[プロパティ] ウィンドウで CustomTool プロパティをクリックし、カスタム ツールの名前を入力します。

CustomToolNamespace プロパティ

プロジェクトにカスタム ツールを割り当てている場合は、CustomToolNamespace プロパティを使用して、カスタム ツールで生成されたコードに割り当てる名前空間を指定できます。CustomToolNamespace プロパティの値を指定すると、ツールによって生成されたコードが、指定した名前空間に配置されます。このプロパティが空白である場合、生成されたコードは、変換されたファイルを含むフォルダの既定の名前空間に配置されます。これは、Visual Basic ではプロジェクトのルートの名前空間になります。Visual C# では、フォルダの DefaultNamespace プロパティの設定によって決まります。

参照

概念

Visual Studio の既定のプロジェクト テンプレート

Visual Basic および Visual C# のファイルの種類と拡張子

参照

接続文字列プロパティ、ファイル プロパティのダイアログ ボックス (デバイス)

その他の技術情報

プロジェクト プロパティ (Visual Studio)