Y a-t-il du travail en cours pour créer un compilateur C # afin de produire des exe natifs?

StackOverflow https://stackoverflow.com/questions/464992

Question

Y a-t-il du travail en cours pour créer un compilateur C # pour produire des fichiers exe natifs? par exemple. la sortie est un fichier exe natif et PAS un assemblage .NET.

Était-ce utile?

La solution

Pourquoi ne pas essayer NGen. Par exemple, Paint.NET utilise nGen pour créer des images natives après l’installation.

Autres conseils

Si vous souhaitez un déploiement autonome (c’est-à-dire sans avoir besoin de la structure), il existe quelques options - voir ici . Cependant, je ne suis au courant d'aucun élément susceptible de produire de manière fiable du code purement non géré. Quel est le cas d'utilisation que vous avez en tête? Pour les systèmes embarqués, etc., il existe un micro-cadre, un système CF, etc.

Il existe une telle solution pour Mono, il s’agit de «mkbundle» - la liaison statique au lieu d’utiliser JIT / CLR / GAC, je suppose

Vous devez toujours fournir les bibliothèques sous une forme ou une autre pour pouvoir toujours installer un moteur d'exécution, ou l'exécutable natif doit être énorme.

Il y a deux projets actifs. Ils sont conçus pour les systèmes d’exploitation basés sur CIL, mais l’itération actuelle de MOSA Compiler Framework s’exécute sous Windows (tests unitaires, etc.) et ne prend en charge que l’amorçage. Auparavant, Cosmos avait une architecture Windows et quelques plugs, mais Windows ne le fait plus, il ne démarre qu’en environnement CIL.

Cosmos est beaucoup plus avancé, cependant, ils ont un support d’objet très bien cloué. Pour le moment, MOSA n’est que du métal nu (méthodes statiques) - même s’il est fait de manière «appropriée» et bien testé (et je pense que les progrès sont plus rapides). Donnez-lui quelques mois de plus, puis revenez en arrière.

Niether a un JIT en ce moment (ce qui n’a pas d’importance puisque vous n’en voulez pas). Tout est compilé à l'avance dans le code machine.

éditeur de liens .NET

Vous pouvez également trouver cela intéressant à lire: Internals .NET et compilation native .

Notez que pour que la réflexion fonctionne, de nombreuses informations sur le code devront toujours être présentées.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top