5

サイズが 16kb のアプリケーションがあります。

[プロジェクト プロパティ] メニューからアイコン リソースを追加すると、アプリケーションのサイズが予想どおり 299kb に増加しました。

ここで、プロパティ/アプリケーションの下で、アイコン ファイルを「Resource\IconName.ico」に設定すると、ファイル サイズが再び 581kb に増加します。

これは正常な動作ですか?アイコンをリソースとして追加すると増加することは理解していますが、リソースからアイコンをアプリケーションアイコンに設定すると増加しません。

なぜこれが起こっているのか誰でも説明できますか?

編集:

プロパティ/リソースセクションのアイコンを使用してアプリケーションアイコンを設定するにはどうすればよいですか?

4

1 に答える 1

5

はい、これは正常な動作です。アイコンはリソースとして2回保存されていません(いくつかのコメントで示唆されているように)。コンパイル中にexeにリンクされているだけで、リソースとしても保存されています。アイコンは公開されているため (つまり、explorer.exe はアイコンをレンダリングするときにアイコンに直接アクセスします)、基本的に、アイコンの 2 つのコピーが異なる形式で作成されます。

  • Windows 標準形式で exe に直接コンパイルされたアイコンの 1 つのコピー
  • .NET リソースとして 1 つのコピー

この余分なスペースを本当に節約したい場合は、埋め込まれたリソースを削除し、アプリケーション アイコンの参照を変更して、ディスク上のアイコンを直接指すようにします。次に、フォームに割り当てるアイコンのコピーが必要な場合は、組み立て:

var executablePath = Assembly.GetExecutingAssembly().Location;
var icon = Icon.ExtractAssociatedIcon(executablePath);
于 2012-08-20T01:11:05.850 に答える