Domanda

C'è qualche lavoro da fare per creare un compilatore C # per produrre exe nativi? per esempio. l'output è un exe nativo e NON un assembly .NET.

È stato utile?

Soluzione

Perché non provi NGen. Per esempio Paint.NET usa nGen per creare immagini native dopo l'installazione.

Altri suggerimenti

Se si desidera una distribuzione autonoma (ovvero senza la necessità del framework), ci sono alcune opzioni: consultare qui . Tuttavia, non sono a conoscenza di nulla che possa produrre in modo affidabile codice puramente non gestito. Qual è il caso d'uso che hai in mente? Per ecc. Incorporato c'è micro-framework, CF, ecc.

Esiste tale soluzione per Mono, questo è "mkbundle" - collegamento statico invece di usare JIT / CLR / GAC, immagino

Dovresti comunque fornire le librerie in qualche modo, quindi dovresti comunque avere un runtime installato, o l'exe nativo dovrebbe essere enorme.

Esistono due progetti attivi. Sono orientati verso i sistemi operativi basati su CIL, ma l'attuale iterazione di MOSA Compiler Framework funziona su Windows (unit test ecc.) E ha un supporto di avvio limitato. Cosmos aveva un'architettura Windows e alcune prese, ma non fanno più Windows, ma si avvia solo in un ambiente CIL.

Il cosmo è molto più avanti, tuttavia ha un supporto agli oggetti praticamente inchiodato. MOSA è solo metallo nudo (metodi statici) per ora - sebbene sia fatto nel modo "corretto" e ben testato dall'unità (e penso che faccia progressi più rapidi). Dagli ancora qualche mese e poi torna indietro e dai un'occhiata.

Niether ha un JIT al momento (il che non ha importanza poiché non ne vuoi uno). È tutto compilato in anticipo per il codice macchina.

Linker .NET

Potrebbe essere interessante leggere anche questo: .NET Internals e Native Compiling .

Nota che affinché la riflessione funzioni molte informazioni sul codice dovranno sempre essere presenti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top