8

AFAIK、ngenはMSILをネイティブコード(pre-JITとも呼ばれます)に変換しますが、起動時のパフォーマンスへの影響についてはあまり注意を払っていませんでした。Ngenされたアプリケーションには、引き続き.NET基本クラスライブラリ(ランタイム)が必要です。

基本クラスライブラリには.NETアセンブリに必要なものがすべて揃っているので(正しいですか?)、ランタイムをインストールする必要がないように、フレームワークのDLLをngenのアプリケーションと一緒に出荷することは可能でしょうか?(たとえば、ほとんどのWindows XPマシンのシナリオ)

ああ、 RemotesoftのSalamanderLinkerXenocodeのPostbuildについては気にしないでください。それらは私の(そして多くの)現在の予算のためではありません(そしてそれらは単に仮想化された環境にフレームワークをバンドルしているようです、それは大きなダウンロードサイズと遅い起動時間を意味すると私は信じています)

編集:
私は今知っています、ngenは私が思ったことをしません。
しかし、VMを使用せずに.NETファイルをアプリケーションにバンドルすることは可能ですか?

4

4 に答える 4

5

これはできません。ガベージコレクターなどの多くの重要なコンポーネントはCLR(フレームワークランタイムの一部)の一部であるため、アプリケーションを正常に実行するには、フレームワークをインストールする必要があります。

于 2010-03-16T12:17:06.107 に答える
2

それはNgenがどのように機能するかではありません。JITコンパイルステップをバイパスするだけです。結果の.ni.dllファイルには、アセンブリのメタデータではなく、マシンコードのみが含まれます。そのために元のアセンブリを利用できるようにしておく必要があります。また、CLRと.NET Frameworkアセンブリがターゲットマシンで使用可能である必要があるため、.NETをインストールする必要があります。

于 2010-03-16T11:50:33.393 に答える
2

Microsoft .NET Nativeをご覧ください:

.NET Nativeは、C#をC++のように動作するネイティブマシンコードにコンパイルします。ネイティブコードの優れたパフォーマンスにより、.NETFrameworkの生産性と親しみやすさの恩恵を受け続けることができます。

VisualStudio2014に統合されます。

于 2014-09-04T04:52:03.697 に答える
1

.NETアプリケーションをネイティブコードにコンパイルする方法を参照してください。-コンセンサスはそれが不可能であるように見えます。

于 2010-03-16T11:15:16.083 に答える