14

(すべてのサイズの参照は、展開/インストールされたサイズではなく、パッケージ化されたサイズに関するものです)

基本的に、以前の .NET Framework 3.5 のサイズは数百 MB (231.5 MB) で、3.5 のクライアント プロファイルは存在しませんでしたが、バージョン 4.0 のクライアント プロファイルはサイズが 41 MB しかありませんでした。 4.0 のフル インストール (CP ではない) のサイズは 48.1 MB でした。

現在、彼らは (質問の最後に投稿されたリンクで) ほとんどのアプリがクライアント プロファイル 4.0 でカバーされていないクラスと名前空間を必要とする傾向があると言っているため、その理由で 4.5 のクライアント プロファイルを作成しないことにしました。彼らが引用したもう 1 つの理由は、.NET Framework 4.5 のフル インストール バージョンを 50 MB まで下げることができたので、クライアント プロファイル バージョンを作成する必要性も減ったためです (.NET 4.5 フル インストールはわずか 9 MB であるため)。 .NET 4.0 クライアント プロファイルよりも大きい)、および同等のフル インストール (スタンドアロン オフライン インストーラー) よりもわずか 1.MB 大きいだけです。

さて、私の質問には、次のように 2 つの部分しかありません。

1)。4.0 と 4.5 のバージョンでは 3.5 以下の問題が非常に多く修正され、その後非常に多くの機能が追加されているのに、どうして 3.5 以下 (3.0、2.0) のバージョンのサイズが数百 MB になるのでしょうか? 3.5以下で、パッケージサイズは数倍小さい?

2)。これがクライアント プロファイルの最後の言葉ですか、それともいつか .NET 4.5 で見られるのでしょうか?

3)。多くの問題を修正し、多くの機能を追加しながら、4.5 が 4.0 よりも 1.9 MB だけ大きいのはなぜでしょうか?

更新:( そして、喜んで誰にでも4番目の質問をする可能性があります):

@Gromer は、言語パックが含まれていないという興味深い点を提起しました。1 つの言語を含める必要があるため、英語であると想定していますが、それがデフォルトですか? もしそうなら、ほとんどの人が「.NET Framework」が何であるかさえ知らない/理解していないときに、平均的なインターネット ユーザーが自分の使用と言語のために言語パックをダウンロードしてインストールすることはどのように意図されているのでしょうか? 何か不足していますか、それとも重要ではありませんか? フレームワークは、音声言語またはダイアログ ボックスでエンド ユーザーとどのくらいの頻度で通信しますか?

この情報の一部を入手した記事は次のとおりです。

http://blogs.msdn.com/b/dotnet/archive/2012/10/12/improvements-in-net-framework-setup-for-developers-it-pros-and-users.aspx

4

4 に答える 4

10

3.5 の「スタンドアロン」インストーラーの中を見ると、サブセットアップがいくつもあることに驚くでしょう。

たとえば、dotnetfx35_with_sp1.exeを見てみましょう。これは 231 MB の大きなチェーン インストーラーです。で解凍すると

dotnetfx35_with_sp1.exe /x:myfolder

240Mb のフォルダーを取得し、他のいくつかのフォルダーに分割します。

dotNetMSP [111.2Mb] ==> x64 [45.0Mb], ia64 [36.2Mb], x86 [29.7Mb], [other] 300k 
dotNetFX20 [47.6Mb] ==> about 50/50% between 32 and 64 bit
dotNetFX30 [46.8Mb] ==> x64 [24Mb], x86 [22Mb]
dotNetFX35 [31.5Mb] ==> ia64 [12.8Mb], x64 [10.8Mb], x86 [7.7Mb]
...and some other files around...

ご存じのとおり、.NET 3.5 には .NET 3.0 と .NET 2.0 が必要です。これはまさにここに表示されているものです..言語パックを含めなくても、(Windows XP 以降の) さまざまなプラットフォームをターゲットにして、たくさんのパッチ。

.NET 4.x に移行すると、以前のフレームワークへの依存関係が削除され、同時にサポートされるオペレーティング システムとプラットフォームが少なくなり、新しいものになりました (たとえば、ia64 のサポートを考えてみてください。これはファイル サイズが非常に重かったです)。現在はほとんど姿を消している)。

新しいセットアップで私が見たものから、彼らはフレームワークを出荷する内部フォーマットで何かを変更した可能性もあり、おそらくより効率的に圧縮されています..

最後になりましたが、彼らは多くの内部アーキテクチャを変更し、多くのことを書き直しました。その結果、おそらく他の古いものを削除することができました...

おそらく、サイズを大幅に削減できる特別な変更は1つもありません。おそらく、上記のすべてとそれ以上のものです:)

ちょうど私の2c :)

于 2013-03-01T15:58:49.787 に答える
4

このソースは見つかりませんが、.Net Framework 3.5 インストーラーが非常に大きかった理由は、すべてのアセンブリ (場合によっては使用されないものも含む) の事前 JIT バージョンが含まれていたためだと思います。は正しくないプラットフォームを対象としています)、一方、.Net 4.0 インストーラーはそうではありません - インストール時にそれらを JIT します (これが、.Net フレームワーク v4.0 のインストールに非常に時間がかかる理由です)

また、.Net 4.5 のインストールは、インストールの一部としてアセンブリを JIT するよりも、PC がアイドル状態のときにバックグラウンドで JIT を実行するため、はるかに高速になると言われたことを思い出します (ただし、アプリケーションが試行するアセンブリをすぐに JIT するプロセスがあります) 読み込みますが、まだ JIT されていません)

現時点では、これに関するソースを見つけるのに苦労していますが、見つけたら投稿します。

于 2012-10-19T16:39:14.167 に答える
4

Scott Hanselman は雄弁に次のように述べています。

なぜその 1 つのインストーラーがこれほど大きいのですか?

この巨大な .NET ダウンロードは、.NET Framework 全体だけでなく、考えられるすべてのプラットフォームを含むセットアップを再配布したい開発者または管理者を対象としています。x86、x64、ia64 用のインストーラーがあります。

http://www.hanselman.com/blog/SmallestDotNetOnTheSizeOfTheNETFramework.aspx

と:

.NET Framework のサイズについては、いくつかの混乱があります。 .NET Framework は実際には 200 MB 以上のダウンロードではありません。

どのインストーラーを使用しますか? ここでは、開発者、ISV、および管理者向けにすべてを簡単に説明します。

  • オフライン インストーラー - オフラインで実行できる 1 つのファイルで、.NET Framework が実行されている任意のシステムにインストールできます。完全で、すべてのプラットフォームで、オフラインでインストールできます。

  • オンライン インストーラ - 必要なファイルだけを検出し、10 ~ 60 MB でダウンロードする 2.7 MB のセットアップ プログラム。

このブログ投稿では、Microsoft が .NET 4 フレームワーク プラットフォームのインストールをどのように小さくしたかについて詳しく説明しています。具体的には:

クライアント アプリケーションの 95% 以上で使用されるフレームワーク機能のサブセットを特定し、このシナリオ用のファースト クラス パッケージを作成しました。この結果、ASP.NET などの機能を利用していない限り、より小さなフレームワークに依存できるようになりました。

于 2012-10-19T16:25:11.853 に答える
2

私の個人的な意見では、マイクロソフトはサービス パックや新しい Windows リリースによって、コア .NET Framework のより多くの機能を Windows オペレーティング システムに直接統合しています。

V 4.0 でオペレーティング システムのバインディングを再設計したため、.NET を起動して実行するために必要なコード ベースと追加のリソースが、サポートされているオペレーティング システムで減少したと思います。たとえば、XP のすべてのスペシャル エディションは、3.5 から 4.0 の間でサポート リストから削除されました。4.5 では、OS ベースはさらに縮小しています (Vista/7/Win8 および Server 2008/2013)。

また、上記のように、英語以外の言語などの機能が削除され、他の機能が .NET SDK パッケージに抽出されました。

ちょうど私の2セント。

于 2012-12-23T15:43:53.893 に答える