次の方法で共有


リソースの追加と編集

Visual C# アプリケーションには、ソース コード以外のデータが含まれることがよくあります。このようなデータはプロジェクト リソースと呼ばれ、バイナリ データ、テキスト ファイル、オーディオ ファイル、ビデオ ファイル、文字列テーブル、アイコン、イメージ、XML ファイルなど、アプリケーションに必要な種類のデータが含まれます。プロジェクト リソース データは、.resx ファイル (既定では Resources.resx という名前) に XML 形式で格納されます。このファイルはソリューション エクスプローラで開くことができます。プロジェクト リソースの詳細については、「リソース ファイルの操作」を参照してください。

プロジェクトへのリソース追加

プロジェクトにリソースを追加するには、[プロジェクト] メニューの [既存項目の追加] をクリックするか、プロジェクト デザイナの [リソース] ページにある [リソースの追加] ボタンをクリックします。

また、リソースはリンク リソース (外部ファイル) または埋め込みリソース (.resx ファイルに直接埋め込まれるリソース) としてプロジェクトに追加できます。

  • リンク リソースを追加した場合、プロジェクトのリソース情報を格納する .resx ファイルには、ディスク上のリソース ファイルの相対パスのみが含まれます。イメージ、ビデオ、またはその他の複雑なファイルをリンク リソースとして追加した場合は、リソース デザイナで該当するファイルの種類に関連付けた既定のエディタを使用して、それらのファイルを編集できます。

  • 埋め込みリソースを追加した場合は、データがプロジェクトのリソース (.resx) ファイルに直接格納されます。埋め込みリソースに格納できるのは文字列のみです。

詳細については、「リンク リソースと埋め込みリソース」を参照してください。

リソースの編集

リソース デザイナで各プロジェクト リソースを編集する既定のアプリケーションを割り当てると、開発時にプロジェクト リソースを追加し、変更できます。リソース デザイナにアクセスするには、ソリューション エクスプローラの [プロパティ] を右クリックし、[開く] をクリックして、プロジェクト デザイナの [リソース] タブをクリックします。詳細については、「[リソース] ページ (プロジェクト デザイナ)」を参照してください。リソース デザイナのメニュー オプションを次の図に示します。

リソース デザイナ メニュー項目

埋め込みリソースを編集するには、.resx ファイルを使用して、個々の文字やバイトを直接操作する必要があります。そのため、複雑な種類のファイルは、開発時にリンク リソースとして格納する方が便利です。バイナリ エディタを使用すると、.resx ファイルを含むリソース ファイルを、16 進形式または ASCII 形式のバイナリ レベルで変更できます。イメージ エディタを使用すると、アイコン、カーソル、およびリンク リソースとして格納された .jpeg ファイルや GIF ファイルを変更できます。また、これらのファイルの種類に対するエディタとして、他のアプリケーションを選択することもできます。詳細については、「リソース エディタでのリソースの表示と編集」を参照してください。

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

バイナリ エディタとイメージ エディタは、Express エディション以外のすべての Visual Studio のエディションで使用できます。

リソースのアセンブリへのコンパイル

アプリケーションをビルドすると、Visual Studio は resgen.exe ツールを呼び出して、アプリケーション リソースを Resources という内部クラスに変換します。このクラスは、Resources.Designer.cs ファイルに含まれます。このファイルは、ソリューション エクスプローラでは Resources.resx ファイルの下に入れ子になっています。実行時に厳密に型指定されたリソースになるように、すべてのプロジェクト リソースは、Resources クラスによって静的で読み取り専用の get プロパティにカプセル化されます。Visual C# IDE を通じてビルドする場合は、.resx ファイルに埋め込まれたリソースとリンクされたファイルの両方を含む、カプセル化されたすべてのリソース データが、アプリケーション アセンブリ (.exe ファイルまたは .dll ファイル) に直接コンパイルされます。つまり、Visual C# IDE では常に /resource コンパイラ オプションが使用されます。コマンド プロンプトからビルドする場合は、/linkresource コンパイラ オプションを指定して、メイン アプリケーション アセンブリとは別個のファイルにリソースを配置できます。これは高度なシナリオであり、必要になるのはまれです。メイン アプリケーション アセンブリとは別個にリソースを配置するシナリオとしては、後のセクションで説明するサテライト アセンブリを使用する方が一般的です。

実行時のリソースへのアクセス

実行時にリソースにアクセスするには、他のクラス メンバにアクセスするときと同じように参照します。Image01 という名前を付けたビットマップ リソースを取得する方法を次の例に示します。

System.Drawing.Bitmap bitmap1 = Properties.Resources.Image01;

内部的には、get プロパティによって ResourceManager クラスが使用され、オブジェクトの新しいインスタンスが作成されます。

詳細については、「リソース ファイル ジェネレータ (Resgen.exe)」を参照してください。

サテライト アセンブリに含まれるリソース

複数言語へのローカライズ (翻訳) が行われる予定のアプリケーションを作成する場合、カルチャ固有の各文字列セットを、固有のサテライト アセンブリのリソースとして格納できます。アプリケーションを配布するときには、メインのアプリケーション アセンブリと適切なすべてのサテライト アセンブリを含めます。このようにすると、メインのアプリケーション アセンブリを再コンパイルしなくても、サテライト アセンブリの追加や既存のサテライト アセンブリの変更を行うことができます。サテライト アセンブリの詳細については、オンラインの MSDN で "サテライト アセンブリの作成" と "固有カルチャのリソースの検索と使用" を検索してください。

参照

その他の技術情報

Visual C# Express IDE の使用