15 Stimmen

Umwandlung einer .NET- ausführbaren Datei in eine native ausführbare Datei

Gibt es einen Ansatz, um eine in .NET entwickelte Anwendung in eine native ausführbare Datei umzuwandeln (Quellen sind enthalten)?

Die Installation des gesamten Frameworks (bis .NET Framework 3.5 SP1) dauert viel Zeit - nicht immer sind die Computer aus dem Internet aktualisiert. Ist es möglich, NGen aufzurufen, um unabhängige ausführbare Dateien zu erstellen?

Danke

12voto

Richard Szalay Punkte 80740

Es ist noch nicht verfügbar, aber das Mono-Projektteam arbeitet an einem Ahead of Time Compiler, der das tun wird, was du suchst. Die Absicht ist, dass Mono auf dem iPhone funktioniert (wie Unity), aber es sollte für alle Plattformen funktionieren.

Bearbeiten: Es unterstützt Mono x86, aber ich bin mir nicht sicher, ob sie die Funktion, die abhängige Klassen einbindet, bereits enthalten haben (obwohl es laut einem Interview, das ich gehört habe, geplant ist)

Bearbeiten 2: Das Einbinden von Abhängigkeiten wird derzeit unterstützt, danke Dykam!

9voto

Jon Skeet Punkte 1325502

Nein, NGen-Code benötigt immer noch das Framework - es pre-JITs nur den Code in Ihren eigenen Assemblys. Es benötigt auch das Framework für den CLR selbst.

Ich glaube, Mono hat einen statischen Compiler, den sie für das iPhone verwenden wollen. Ich weiß allerdings nicht, ob das auch auf Windows funktionieren wird.

Früher gab es ein Produkt namens Thinstall, das einige Leute dafür benutzt haben. Es heißt jetzt ThinApp - im Grunde handelt es sich um Anwendungs­virtualisierung. Es ist kommerziell, aber Sie können wahrscheinlich eine Testversion bekommen.

Persönlich wäre ich etwas besorgt über ein solches Produkt - wenn es um Bereitstellung geht, sich von der gängigen Vorgehensweise abzuwenden, klingt nach vielen Support-Anrufen. Es gibt einfach so viel, was schiefgehen könnte. Ich sage nicht, dass es nicht funktioniert, nur dass ich vorsichtig wäre.

Haben Sie sich das .NET 3.5 (SP1) Client-Profil angesehen? Das könnte helfen, Ihre Installationsanforderungen etwas zu reduzieren.

6voto

ZippyV Punkte 12030

Mit .NET 3.5 SP1 ist es möglich, eine kleinere Teilmenge des .NET-Frameworks zu installieren. Schauen Sie sich diesen Screenshot an: Eigenschaften des Visual Studio-Projekts
(Quelle: <a href="http://windowsclient.net/sitefiles/1000/wpf/presents/103_4.png" rel="nofollow noreferrer">windowsclient.net</a>)

3voto

MusiGenesis Punkte 72729

Sie können NGen verwenden, um Ihre Anwendung in ein natives ausführbares Programm umzuwandeln, aber es wird immer noch vom .Net-Framework abhängig sein.

3voto

Simon P Stevens Punkte 26735

NGen kompiliert die Exe-Dateien zu nativen Exe-Dateien, sodass sie nicht zur Laufzeit JIT-kompiliert werden müssen. Sie sind jedoch immer noch abhängig vom Framework.

Es gibt einige kommerzielle Unternehmen, die Produkte anbieten, um .net-Assemblys in eigenständige Exe-Dateien zu kompilieren. Xenocode und Thinapp von vmware. Beide sind jedoch nicht billig.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X