リンク リソースと埋め込みリソース
Visual Studio プロジェクトには、リソースの処理方法として 2 つのオプションがあります。リソースをリンクする方法 (既定) と、リソースを埋め込む方法です。1 つのプロジェクトには、リンク リソースと埋め込みリソースの両方を入れることができます。ただし、たいていの場合は、プロジェクトのすべてのリソースに 1 つのオプションを選択します。
リンク リソースは、ファイルとしてプロジェクトに格納されます。コンパイル時に、リソース データがファイルから取得され、アプリケーションのマニフェストに追加されます。アプリケーションのリソース ファイル (.resx) には、ディスク上のファイルへの相対パスまたはリンクだけが格納されます。
埋め込みリソースの場合、リソース データは、バイナリ データを表すテキストとして .resx ファイルに直接格納されます。いずれの場合にも、リソース データは、実行可能ファイル内にコンパイルされます。
リソース ファイルの Persistence プロパティを変更すると、リンク リソースを埋め込みリソースに変更できます。詳細についてはこのトピックの後に 埋め込みリソースを作成していることを 確認します。
[!メモ]
文字列リソースは常に埋め込みリソースであり、変更はできません。また、ファイル リソースは常にリンク リソースであり、変更はできません。
埋め込みリソースとリンク リソースの切り替え
一般に、リンク リソースの方が使いやすいため、こちらの使用をお勧めします。ただし、埋め込みリソースを使用する方が望ましい場合もあります。
埋め込みリソース
アプリケーションのリソース ファイル (.resx) を複数プロジェクトで共有する必要がある場合には、埋め込みリソースが最良の選択です。たとえば、会社のロゴや商標情報などを含む共通のリソース ファイルがある場合は、埋め込みリソースにすると .resx ファイルだけをコピーすればよく、関連付けられたリソース データ ファイルをコピーする必要はありません。
埋め込みリソースを直接編集することはできません。埋め込みリソースを編集しようとすると、リンク リソースに変換してから編集するように求めるメッセージが表示されます。この場合、変換することをお勧めしますが、この操作はオプションです。変換した項目をエクスポートし、外部プログラムで変更してから、再度プロジェクトにインポートする必要があります。
埋め込みリソースの作成
リソースが Visual Studio プロジェクトに追加されるときは、リンク リソースとして作成されます。場合によっては、アプリケーションのリソース ファイル (.resx) にリソースを埋め込むこともできます。
リソースは、プロジェクト デザイナーの [リソース] ページで、リンク リソースから埋め込みリソースに変更できます。
[!メモ]
文字列リソースは常に .resx ファイルに埋め込まれ、リンク リソースには変更できません。また、ファイル リソースは常にコンパイル時にリンクされます。
リソースをリンク リソースから埋め込みリソースに変更するには
ソリューション エクスプローラーでプロジェクトが選択されている状態で、[プロジェクト] メニューの [プロパティ] をクリックします。
[リソース] タブをクリックします。
リソース デザイナー ツール バーの [リソース ビュー] ドロップダウンをポイントし、矢印をクリックします。次に、編集するリソースの種類を選択します。
変更するリソースを選択します。
[プロパティ] ウィンドウで、[Persistence] プロパティを選択し、[.resx に埋め込まれました] に変更します。
埋め込みリソースの編集
Visual Studio プロジェクトの埋め込みリソースは、Visual Studio IDE では直接編集できません。編集する場合は、エクスポートしてから、外部プログラムで編集し、プロジェクトにインポートし直す必要があります。
埋め込みリソースをエクスポートするには
ソリューション エクスプローラーでプロジェクトを選択し、[プロジェクト] メニューの [プロパティ] をクリックします。
[リソース] タブをクリックします。[リソース デザイナー] ページが表示され、上部にツール バーが表示されます。
リソース デザイナー ツール バーの最初のドロップダウン リスト ボックスで、[イメージ]、[アイコン]、[オーディオ] など、インポートする埋め込みリソースの種類を選択します。プロジェクト内に存在するその種類のすべてのリソースがプロジェクト デザイナーに表示されます。
アイコン ファイル、オーディオ ファイルなど、エクスポートするリソースを選択します。
リソースを右クリックし、ショートカット メニューの [ファイルへエクスポート] をクリックします。
[!メモ]
このコマンドは埋め込みリソースの場合にのみ使用できます。
[リソースをファイルにエクスポートします] ダイアログ ボックスで、ファイルをエクスポートする場所を指定し、[保存] をクリックします。
リソースをインポートするには
ソリューション エクスプローラーでプロジェクトを選択し、[プロジェクト] メニューの [プロパティ] をクリックします。
[リソース] タブをクリックします。[リソース デザイナー] ページが表示されます。
リソース デザイナー ツール バーの最初のドロップダウン リスト ボックスで、[イメージ]、[アイコン]、[オーディオ] など、インポートする埋め込みリソースの種類を選択します。プロジェクト内に存在するその種類のすべてのリソースがプロジェクト デザイナーに表示されます。
アイコン ファイル、オーディオ ファイルなど、インポートするリソースを選択します。
リソースを右クリックし、ショートカット メニューの [ファイルからインポート] をクリックします。
[!メモ]
このコマンドは埋め込みリソースの場合にのみ使用できます。
[ファイルをリソースにインポートします] ダイアログ ボックスで、インポートするファイルを指定し、[開く] をクリックします。
リンク リソース
使いやすさを優先する場合は、リンク リソース (既定) をお勧めします。リンク リソースはプロジェクト内で直接編集でき、必要に応じて容易にリソースを追加したり削除したりできます。
リソースを埋め込みリソースからリンク リソースに変更するには
ソリューション エクスプローラーでプロジェクトが選択されている状態で、[プロジェクト] メニューの [プロパティ] をクリックします。
[リソース] タブをクリックします。
リソース デザイナー ツール バーの [リソース ビュー] ドロップダウンをポイントし、矢印をクリックします。次に、編集するリソースの種類を選択します。
変更するリソースを選択します。
[プロパティ] ウィンドウで、[Persistence] プロパティを選択し、[実行時にリンクされました] に変更します。