15

.NETで開発されたアプリケーションをネイティブ実行可能ファイルに変換する方法はありますか(ソースが含まれています)?

フレームワーク全体(.NET Framework 3.5 SP1まで)のインストールには多くの時間がかかります。コンピューターがインターネットから更新されるとは限りません。独立した実行可能ファイルを生成するためにNGenを呼び出すことは可能ですか?

ありがとう

4

11 に答える 11

12

まだ利用できませんが、Monoプロジェクトチームは、探していることを実行するAheadofTimeコンパイラに取り組んでいます。MonoはiPhone(Unityなど)で動作することを目的としていますが、すべてのプラットフォームで動作するはずです。

編集: Mono x86はサポートされていますが、依存クラスにパックされる機能がまだ含まれているかどうかはわかりません(聞いたインタビューによると、計画されています)

編集2:依存関係を含めることは現在サポートされています、Dykamに感謝します!

于 2009-07-27T12:55:15.430 に答える
9

いいえ、NGenされたコードにはまだフレームワークが必要です-それはあなた自身のアセンブリのコードを事前にJITするだけです。また、CLR自体のフレームワークも必要です。

Monoには、iPhoneでの使用を計画している静的コンパイラがあると思います。それがWindowsでも機能するかどうかはわかりませんが。

一部の人々がこれに使用したThinstallと呼ばれる製品がありました。現在はThinAppと呼ばれています。基本的にはアプリケーションの仮想化です。商用ですが、試用版を入手できるかもしれません。

個人的には、そのような製品については多少心配します。展開に関しては、主流のやり方から離れることは、多くのサポートコールのレシピのように聞こえます。うまくいかないことがたくさんあります。私はそれがうまくいかないと言っているのではなく、ただ警戒するだけです。

.NET 3.5(SP1)クライアントプロファイルを見ましたか?これは、インストール要件を少し減らすのに役立つ場合があります。

于 2009-07-27T12:54:55.103 に答える
6

.net 3.5 SP1 では、.net フレームワークの小さなサブセットをインストールできます。このスクリーンショットを見てください: (ソース: windowsclient.net )Visual Studio プロジェクトのプロパティ

于 2009-07-27T13:02:34.310 に答える
3

NGenを使用して、アプリケーションをネイティブ実行可能ファイルにすることができますが、それでも.NetFrameworkに依存します。

于 2009-07-27T12:55:27.833 に答える
3

NGenはexeをネイティブexeにコンパイルするため、実行時にJITコンパイルする必要はありません。ただし、それらはまだフレームワークに依存しています。

.netアセンブリをスタンドアロンexeにコンパイルするための製品を提供している営利企業がいくつかあります。XenocodeとvmwareのThinapp。どちらも安くはありません。

于 2009-07-27T12:59:56.023 に答える
1

一部の難読化ツールはこれを実行しますが、事前に(ユーザーに出荷する前に)実行する必要があります。例として、remotesoftのSalamanderがあります。

于 2009-07-27T13:00:19.177 に答える
1

vmware の ThinApp (以前の Thinstall)。昔は高かったけどね。

http://www.vmware.com/products/thinapp/

于 2010-03-16T15:30:42.190 に答える
1

.NET1.1または.NET2.0など、対象とする .NET のバージョンのみをインストールする必要があります。

編集:3.5バージョンをターゲットにする必要がある場合は、2.0と3.5の両方をインストールする必要があります

ILMerge (無料) は複数のアセンブリを 1 つに結合できますが、コア ランタイムでは機能しないと思います。

要するに、.NET プログラムを実行したい場合は、.NET Framework をインストールする必要があると思います。

于 2009-07-27T13:02:07.163 に答える
1

Ngen.exe ではないのはなぜですか? http://msdn.microsoft.com/en-us/library/6t9t5wcf(v=vs.80).aspx

それはまた変換.Net ProgramsされNative Programs、.Net Framework を持っている場合は既にそれを持っています

于 2012-12-13T15:30:33.237 に答える
1

ここでそれを行うと主張する商用製品があります:

http://www.xenocode.com/Obfuscator/

「.NET Framework をインストールせずに、.NET アプリケーションを安全に展開する」

ただし、これの欠点が何であるかはわかりません

于 2009-11-27T21:20:44.093 に答える
1

2007 年にこの問題を解決するために私たちが設立した唯一の製品はXenocode Postbuild でした。それ以来、私たちはこの製品をうまく使用しており、非常に優れた仮想化機能も使用しています。

唯一の問題は、購入したバージョンが Windows 7 をサポートしていないことです (バージョン 4.0 未満でコンパイルされたプログラムを実行するために .net フレームワークをインストールする必要はありません)。だから私はXenocodeに書いた。彼らは答えた

Win 7 のサポートを受けるには、最新バージョンの Postbuild (現在は.NET Obfuscatorと呼ばれています) にアップグレードする必要があります。Win 7 は、Postbuild 2007 でサポートされているプラ​​ットフォームではありません。

于 2010-05-17T14:21:43.267 に答える