ネイティブ exe を生成する C# コンパイラを作成する作業は行われていますか? たとえば、出力はネイティブ exe であり、.NET アセンブリではありません。
6 に答える
スタンドアロンの展開が必要な場合 (つまり、フレームワークを必要としない場合)、いくつかのオプションがあります -こちらを参照してください。ただし、純粋にアンマネージ コードを確実に生成するものは何も知りません。あなたが考えているユースケースは何ですか?組み込みなどには、マイクロフレームワーク、CF などがあります。
NGenを試してみませんか。たとえば、Paint.NET では nGen を使用して、インストール後にネイティブ イメージを作成します。
Monoにはそのような解決策があります。これは「mkbundle」です-JIT/CLR/GACを使用する代わりに静的リンクを使用していると思います
ライブラリをなんらかの形で提供する必要があるため、ランタイムをインストールするか、ネイティブ exe を巨大にする必要があります。
こちらも読むと面白いかもしれません: .NET Internals and Native Compiling .
リフレクションが機能するには、コードに関する多くの情報が常に存在する必要があることに注意してください。
2 つのアクティブなプロジェクトがあります。これらは CIL ベースのオペレーティング システムを対象としていますが、MOSA Compiler Framework の現在のイテレーションは Windows (ユニット テストなど) で実行され、ブート サポートが制限されています。Cosmos には以前は Windows アーキテクチャといくつかのプラグがありましたが、Windows はもう使用せず、CIL 環境で起動するだけです。
Cosmos はさらに進んでいますが、オブジェクトのサポートは非常に優れています。MOSA は今のところベアメタル (静的メソッド) にすぎませんが、「適切な」方法で行われ、十分に単体テストされています (そして、より速く進歩していると思います)。さらに数か月待ってから、戻って見てください。
Niether には現時点で JIT があります (必要ないので問題ありません)。すべて事前にマシンコードにコンパイルされます。