91 votes

Est-il possible de compiler une application .NET en code natif?

Que se passe-t-il si je veux exécuter une application .NET sur un ordinateur où le .NET framework n’est pas disponible ? Est-il possible de compiler l’application en code natif ?

46voto

Espo Points 24318

Microsoft a un article vous expliquant comment vous pouvez Compiler MSIL en Code Natif

Vous pouvez utiliser Ngen.

La Génération D'Images Natives (Ngen.exe) est un outil qui améliore la la performance de la gestion des applications. Ngen.exe crée des images natives, qui sont des fichiers contenant des compilé spécifiques au processeur de code machine, et installe dans l'image native cache sur l'ordinateur local. L' runtime pouvez utiliser les images natives de l' cache au lieu d'utiliser la juste-à-temps (JIT) compilateur pour compiler l'original de l'assemblée.

Malheureusement, vous avez encore besoin des bibliothèques du cadre afin d'exécuter votre programme. Il n'y a pas de fonction que je connais, avec le MME .Net framework SDK qui permet de compiler tous les fichiers nécessaires dans un seul exécutable

24voto

Simon Steele Points 8344

RemoteSoft en fait un outil qui compile une application .NET dans un package qui peut être exécuté sans .NET installés. Je n’ai aucune expérience avec elle :

Salamandre RemoteSoft

20voto

thepirat000 Points 1873

Microsoft a annoncé son .NET Native Preview qui permettra d’exécuter des applications .NET sans passer par la framework est installé.

Jetez un oeil : http://blogs.msdn.com/b/dotnet/archive/2014/04/02/announcing-net-native-preview.aspx

FAQ : http://msdn.microsoft.com/en-US/vstudio/dn642499.aspx

19voto

Erick Sgarbi Points 799

J’ai testé plusieurs d'entre eux et en ce moment, la seule qui prend en charge .NET 3.5 et dispose également d’une pile de virtualisation grand est Xenocode postgénération

Avec ngen, vous devez toujours faire du .NET framework installé, mais en utilisant un outil comme tel que tout votre code managé est compilé en code natif, donc vous pouvez les déployer pour machines sans la présence de cadre.

11voto

Chris Zwiryk Points 1162

Oui, à l'aide de Ngen, la génération d'Images Natives. Il ya, cependant, un certain nombre de choses que vous devez être au courant:

  • Vous avez encore besoin de le CLR pour exécuter votre exécutable.
  • Le CLR ne sera pas optimiser dynamiquement vos assemblées en fonction de l'environnement il est exécuté en (p. 486 vs 586 vs 686, etc.)

Dans l'ensemble, il ne vaut l'aide de Ngen si vous avez besoin de réduire le temps de démarrage de votre application.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X