Frage

Ich möchte meine .NET-Programme ohne das .NET Framework verteilen. Ist es möglich, ein .NET-Programm in Maschinencode zu kompilieren?

War es hilfreich?

Lösung

Ja, können Sie Ngen.exe PRECOMPILE verwenden, jedoch ist dies die CLR Abhängigkeit nicht entfernen.

Sie müssen nach wie vor auch die IL-Baugruppen versenden, ist der einzige Vorteil von Ngen, dass Ihre Anwendung ohne Aufrufen der JIT starten können, so dass Sie eine echte schnelle Startzeit zu bekommen.

Nach CLR Via C #:

  

Auch Baugruppen vorkompilierte mit   Ngen ist in der Regel langsamer als JIT'ed   Baugruppen, da die JIT-Compiler   kann auf die Zielmaschine optimiert   (32-Bit? 64-Bit? Sonderregister?   etc), während NGEN wird nur produzieren   Baseline-Kompilierung.

EDIT:

Es gibt einige Diskussionen über die oben genannten Informationen von CLR Via C #, wie manche sagen, dass Sie Ngen auf der Zielmaschine nur als Teil des Installationsprozesses ausführen müssen.

Andere Tipps

Remotesoft hat ein: Salamander .NET Linkers

Ich habe keine Erfahrung mit ihm aber.

Es gibt einige Tools von Drittanbietern, die dies tun, z.

Ein weiteres (teure und proprietäre Lizenzen bei $ 1599 beginnen) Produkt, das dies tun kann, ist Xenocode Postbuild . Habe es mir allerdings nicht verwendet werden, damit über das Bruttosozialprodukt eines kleinen afrikanischen Land kostet und alle ...

  

Ist es möglich, .NET IL-Code zu kompilieren   in Maschinencode?

Ja, aber das .NET Framework macht es für Sie zur Laufzeit (Standard) oder zum Zeitpunkt (ngen) installieren. Unter anderem, das IL -> Maschinencode erfolgt separat auf jedem installieren Maschine so kann es für diese spezielle Maschine optimiert werden

.
  

Ich möchte meine .NET verteilen   Programme ohne das .NET Framework.   Ist es möglich, eine .NET zu kompilieren   Programm in Maschinencode?

Nein, für alle Absichten und Zwecke können Sie dies nicht tun. Die 3rd-Party-Abhilfen in einigen Szenarien arbeiten können, aber dann würde ich nicht wirklich halte es für „Managed Code“ oder „.net“ mehr.

Ja, Sie können jetzt! Vor kurzem kündigte Microsoft .NET india , ein Stück Technologie, die Ihre Anwendung mit .NET indiaLaufZeit kompiliert (sie nennen es MRT) in eine binäre (tatsächlich eine ausführbare Datei und eine dynamische Bibliothek).

Siehe Links: http: //blogs.msdn .com / b / dotnet / Archiv / 2014/04/02 / ankündigt-net-native-preview.aspx http://blogs.msdn.com/b /dotnet/archive/2014/04/24/dotnetnative-performance.aspx

Es gibt IL2CPU für die Erstellung Teil.

Ich glaube nicht, dass es möglich ist. Sie können eine prejitted Montage machen, aber Sie müssen noch den Rahmen.

Wenn Sie nur mit der Größe betroffenen Rahmen der Bereitstellung Sie lesen, könnte auf this .

Ich glaube, Sie sollen nicht: Das ist die Aufgabe der JIT-Compiler.

Sie können jedoch Clickonce oder Windows Installer verwenden, es zu implementieren, so dass die fehlenden Rahmen nicht so ein großes Problem ist. Sie das Installationsprogramm sagen könnte, das Framework herunterladen und installieren

Blick auf MONO: Mono-Befehl mit --aot Option. http://www.mono-project.com/AOT

Ich würde immer gedacht, es wäre cool, c # zu Maschinencode ohne die CLR Abhängigkeit allerdings direkt zu kompilieren ....

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top