C#アプリケーションのリソースと埋め込みリソースの違いは何ですか?


89

いつどちらを使うべきですか?

アプリで使用するすべてのファイル(画像、サウンド、xmlファイルなど)を.exeファイル内に配置して、多数のフォルダーやファイルを使用してデプロイしないようにします。

情報をありがとう。

回答:


82

「リソース」および「コンテンツ」ビルドアクションは、URIを使用してWPFリソースにアクセスすることです。ただし、「組み込みリソース」は以前のテクノロジー用です。ただし、どちらのオプションもリソースをアセンブリに埋め込みますが、「リソース」オプションはWPFに使用されます。

MSDNはここで完全な説明を提供します


あなたが正しい!WPFプロジェクトのすべてのイメージをResourceに設定し、ソースを再構築しました。Debugフォルダーに移動すると、ファイルがどこにも見つかりません。ファイルは.exeの一部である必要があり、まさに希望どおりです。どうもありがとうございました!:)
セルジオタピア

1
MSDNリンクが壊れています。ここでの追加の説明は非常にいいでしょう。
マイケルハリス

7

WPFリソース(ビルドアクション= Resource)は、コア.NET Frameworkでサポートされている埋め込みリソースを活用しますが、パックURIを介して埋め込みリソースにアクセスするためのサポートを追加します。MSDNから:

WPFリソースファイルは、アセンブリリソースのコア.NETFrameworkサポートを使用して構成できる埋め込みタイプまたはリンクタイプのリソースとは異なります。WPFリソースファイルはコアの.NETFramework組み込みリソースサポートを利用しますが、パックURIを使用してWPFリソースファイルにアクセスする機能は、名前空間を使用するよりも簡単です。


2

MSDNによって報告されているように、

複数のプロジェクト間でアプリケーションリソース(.resx)ファイルを共有する必要がある場合は、埋め込みリソースが最適です。たとえば、会社のロゴや商標情報などを含む共通のリソースファイルがある場合、埋め込みリソースを使用すると、関連するリソースデータファイルではなく、.resxファイルのみをコピーする必要があります。

埋め込みリソースを直接編集することはできません。埋め込みリソースを編集しようとすると、アイテムを編集するためにアイテムをリンクされたリソースに変換するように求めるメッセージが表示されます。変換をお勧めしますが、オプションです。それらをエクスポートし、外部プログラムで変更を加えてから、プロジェクトにインポートして戻す必要があります。


4
これは質問に答えません:組み込みリソースとリソースの違いは何ですか?あなたは埋め込まれたリソースにのみ答えます。
Grokys 2009

3
質問のテキストには、「どちらをいつ使用する必要がありますか?」と書かれています。私はそれに答えたと思います。質問は本当に2つです。
kiamlaluno 2009

1

すべてのレポートに感謝します。問題がどこにあるかをより正確に見つけるのに役立ちました。私にとって、リソースとして作成され、コンテンツとして作成する必要があったのは、タスクバーのプロジェクトアイコンとして使用される画像でした。他のすべてのイメージは、リソースとしてビルドできます。問題ありません。

これが将来に役立つことを願っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.