Frage

Ich möchte meine einfache reine .NET 2.0-Konsole Dienstprogramm in einen tragbaren exe konvertieren, die ich gerade auf einem USB-Stick ablegen konnte und laufen, ohne sich Sorgen zu machen, ob die CLR und Framework-Bibliotheken auf einem bestimmten Computer installiert sind oder nicht .

href="https://stackoverflow.com/questions/567595/mono-mkbundle-utility-on-windows"> auf mit Mono und Mkbundle für die Erstellung von eigenständigen Windows eXE-Dateien von .NET-Projekten, aber was ich haben möchte, ist ein kompaktes, aber nützlich HowTo.

Was ist die Mindest-Schritte sind eine Portabilität von einem einfachen C # Visual Studio-Projekt zu erreichen?

War es hilfreich?

Lösung

Ich habe eine einfache wie zu hier gefunden , aber, wie ich es selbst nicht getestet habe, kann ich garantieren, Ergebnisse nicht. Wie üblich YMMV.

Zitat aus dem Original-Artikel (bitte auch wenn das Gewinde auf dem Original-Artikel folgen):

  

Mkbundle: Bündel Mono mit Ihren Anwendungen

     

Haben Sie sich jemals gefragt, warum Sie .NET Framework oder Mono müssen installiert das Programm laufen zu lassen? Nun, es wäre viel mehr praktisch, wenn Sie Ihre Anwendungen ohne Gezeter Ihre Kunden verteilen könnten zusätzliche Frameworks zu installieren, ist es nicht? So hier sind wir. Läßt Bündel eine .NET-basierte Anwendung mit Mono, so dass Sie Mono nicht benötigen, oder .NET installiert, um sie auszuführen.

     

Bereiten Sie eine Umgebung

     

Als erstes müssen Sie neuesten Mono und Cygwin installieren. Installieren von Mono ist sehr einfach, so dass Sie nicht alles vermasseln können. Wenn Sie Cygwin Installation beginnen, gehen in Vollansicht, dann fügen Sie bitte 4 zusätzliche Pakete. Diese sind: gcc, mingw, mingw-zlib und zlib

.      

Nun müssen Sie eine Eingabeaufforderung. Sowohl Mono und Cygwin Verknüpfungen erstellen für Eingabeaufforderungen auf dem Desktop, aber Sie brauchen, um sie zu einem kombinieren. Hier ist eine Charge, die es für mich tut. Sie können es ändern müssen, wenn Sie zum Beispiel andere Mono-Version haben.

     

Code:

echo Mono version 2.4 Build 6
echo Prepending 'C:\PROGRA~1\Mono-2.4\bin' to PATH
PATH=C:\PROGRA~1\Mono-2.4\bin;%PATH%

chdir C:\cygwin\bin
bash --login -i
     

Bundle eine Anwendung mit Mono

     

So sind wir nun in einer Eingabeaufforderung diesen Cygwin-Modus ausgeführt wird. Beachten Sie, dass dies nicht mehr eine DOS-Eingabeaufforderung ist, und „dir“ wird nicht mehr. Zur Liste Dateien verwenden Linux-Befehl „ls“. Der Ordner, den Sie jetzt gerade ist wie die unten. Arek ist ein Benutzername.   Code:

C:\cygwin\home\Arek
     

Wechseln Sie zu diesem Ordner mit Ihrem Explorer. Jetzt kopieren Sie 2 Dateien in diesen Ordner. 1. Ihre Anwendung exe und 2. ist die Datei Mono.dll (2MB), dass Sie in Ihren Mono-Ordner finden.   Code:

C:\Program Files\Mono-2.4\bin
     

Aus irgendeinem Grunde das gesamte Verfahren funktioniert nicht mit langen Dateinamen, so benennen Sie Ihre Anwendung exe. Es soll mit diesem alten DOS 8.3-Namen entspricht.

     

Lets go zurück zur Eingabeaufforderung. Sie müssen nur 1 Befehl Ihre Anwendung zu bündeln, und hier ist eine Erklärung.

     

mkbundle ist ein Programm im Mono-Paket | -o Bundled1.exe gibt an, wie die Mono-gebündelt exe genannt wird | Winform1.exe sagt, was aufgenommen werden, wird Mono Bibliotheken sowieso aufgenommen werden | --deps ist notwendig, obwohl ich nicht sicher bin, was es tut | -z wird die Ausgabe exe viel

komprimieren      

Code:

mkbundle -o Bundled1.exe Winform1.exe --deps -z
     

So, jetzt hast du deine Bundled1.exe, die Ihre eigene App enthält zusammen mit Mono selbst. Sie sollten nicht brauchen Mono noch .NET um es auszuführen. Beachten Sie, dass es sein wird, 4MB oder mehr in der Größe. Diese gebündelten exes sind nicht leicht.

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