2009-03-23 11 views
17

WinXPマシンを搭載したクライアント用の小さなデスクトップアプリケーションを作成していますが、.NET Frameworkをインストールすることはありません(少なくとも私にとってはそうではありません)。.NETの静的コンパイル

私の選択肢はC++またはVB6のいずれかに限られています。どちらも素晴らしいとは言えません。 Monoが静的なコンパイラを思いついた日に読んだことは覚えていますが、最近私が見つけることができる唯一のものは、iPhoneでアプリケーションを実行するためのゲームエンジン用の静的コンパイルに関するエントリです。私は心に留めていた。

静的に.net 3.5 winformアプリケーションをコンパイルすることができる無料または商用の製品はありますか?

おかげ

+2

誰がこの質問に投票するのだろうか。静的にランタイムを含めて素晴らしいだろう。 –

+1

いくつかの質問が明白な理由で投票されないように思われるので、私たちが頭を傷つけるようにコメントを残すことはありません。 –

+0

.NETのインストールに何が問題なのですか?それをインストーラに含めます。 –

答えて

11

あなたはそれが正確に何をしたいんRemotesoft Salamander.

を使用しようとすることができます。

+3

...非常に大きなオーバープライスのため... –

8

Monoは、.NET実行時ではなくMonoを対象としていると仮定すると、ほぼすべてのCILアプリケーションを静的にコンパイルすることができるように、Ahead of Time Compilation(AOT)のサポートを大幅に改善しました。 。

全体的に良いアイデアかどうかは、アプリケーションと制約によって決まります。

たとえば、Novellは完全にAOTをコンパイルしてリンクしているMonoTouchを出荷しています。このアプリケーションは、ゲームだけでなく.NetアプリケーションもCocoaTouchフレームワークに対してiPhone上で実行できます。

これらの同じAOT手法を使用して、.NetまたはMonoランタイムのいずれかを前提条件として必要としないWinformsアプリケーションをコンパイルできます。 AOTに関連した多くのパフォーマンス・トレードオフ(ポジティブおよびネガティブ)がありますので、私はデュー・ディリジェンスなしで前進しません。


編集: "?なぜちょうどそれらのためにそれをインストールしない" に関するジョン・サンダース質問に対して

。それは実際にあなたがAOTコンパイルを必要とするかもしれない1つの理由をもたらします。ブートストラップ。

何かをインストールするには、実行可能ファイルを実行する必要があります。 MSI(msiexec.exeを暗黙的に起動する)を配布することも、exeを配布することもできます。 MSIは機能的ですが、かなり恐ろしい開発者の経験です。そのため、アプリケーションをインストールする前に、必要な前提条件(.NETなど)をインストールする.NET(AOTコンパイル済みランタイム依存関係を除く)を使用してブートストラップを構築できます。

さらに、ユーザーは何もインストールする必要がないダウンロード可能な実行可能ファイルを(サイレントモードなど)出荷する必要があります。

さらに:.NETをインストールするには管理者特権が必要です。 AOTを使用すると、アプリケーションの要件を回避することができます。

また、そのいずれかが良いアイデアかどうかは、アプリケーションとあなたの制約によって決まります。

+1

+1あなたの答えは非常に建設的でした! –

関連する問題