Wie kann ich eine .NET exe in Win32 exe konvertieren? (Ich habe den Code nicht) Der Zweck ist es, die Anwendung in Linux mit Wein zu starten. Ich nehme an, dass .NET exe in Wein nicht ausgeführt werden kann und ich mono nicht verwenden möchte.Wie konvertiert man eine .NET-Exe in eine native Win32-Exe?
Antwort
Je nachdem, welche Version von .NET es ist und welche Bibliotheken es verwendet, könnten Sie versuchen, es unter Mono auszuführen, ohne die IL auf nativen Code zu kompilieren.
die meisten Linux-Distributionen haben es unter ihren Paket-Management-Systemen zur Verfügung.
sehen: http://www.mono-project.com/Main_Page für mehr Details
die Alternative ist NGen zu verwenden, um die Compilierung (http://blogs.msdn.com/clrcodegeneration/archive/2007/09/15/to-ngen-or-not-to-ngen.aspx) zu tun. aber ich bin mir nicht sicher, dass das unter WEIN funktionieren würde.
Einfach nicht möglich. Für verwalteten Code benötigen Sie eine Art von VM zum Ausführen. Unter Linux können Sie Mono oder dotgnu portable.net verwenden. Vielleicht kann eine etwas hochentwickelte Version von Wine das MS.net-Framework einmal ausführen?
Vielleicht läuft es unter Mono?
Es ist eine WinForm Account Manager-Anwendung, die eine Excel-Datei an den Eingängen basierten Prozesse. – devnull
OK, dann denke ich, es wird schwierig sein, es unter Mono laufen zu lassen (angesichts der Excel-Abhängigkeit). –
Je nach Framework-Version kann es mit Wine arbeitet .Net Framework compability in Wine
Ich bestätige, dass: Ich habe eine ziemlich große Anwendung mit mehreren Third-Party-Assemblys und P/Aufrufe aufrufen, und es funktioniert gut mit Wine + Mono –
Dies ist wahrscheinlich eine schwierige Lösung für Sie, aber ich erwähne es hier im Interesse der Vollständigkeit.
Sie können angeblich eine .net-Anwendung mit VMWare Thinapp umbrechen. Ich glaube, das führt zu einer ausführbaren win32-Datei.
Verwenden Sie die Voraus-Time-Compiler mit statischen Bibliotheken. A.k.a. mkbundle on mono
Mono kommt mit einer Kommandozeilen-Schnittstelle zum Mono-JIT-Compiler, um AOT (vor der Zeit) zu kompilieren. Sie können dies verwenden, um eine statisch verknüpfte .o-Datei zu erstellen, die Sie dann mit einem trivialen Wrapper ausführen können, der den Mono-Laufzeit-Embedder mit der Objektdatei aufruft. Wenn Sie dann statisch auf die Monobibliotheken verweisen, haben Sie keine externen Abhängigkeiten zu einem installierten .NET-Framework.
Natürlich werden Sie alle statisch gelinkte Bibliotheken versenden oder mit einem hughe exe am Ende aber hey, es ist, was Sie für
fragtemono --aot=static
static Create an ELF object file (.o) which can be statically linked into an executable when embedding the mono runtime. When this option is used, the object
file needs to be registered with the embedded runtime using the mono_aot_register_module function which takes as its argument the mono_aot_module_<ASSEM‐
BLY NAME>_info global symbol from the object file:
extern void *mono_aot_module_hello_info;
mono_aot_register_module (mono_aot_module_hello_info);
Während ich dies auf Linux verwendet wird, bin ich nicht Ganz sicher, dass es bei Fenstern genauso gut funktioniert.
aktualisieren Remembered das mkbundle Werkzeug:
[email protected]:~$ mkbundle --static test.exe -o hello
OS is: Linux
Note that statically linking the LGPL Mono runtime has more licensing restrictions than dynamically linking.
See http://www.mono-project.com/Licensing for details on licensing.
Sources: 1 Auto-dependencies: False
embedding: /home/sehe/test.exe
Compiling:
as -o temp.o temp.s
cc -o hello -Wall `pkg-config --cflags mono` temp.c `pkg-config --libs-only-L mono` -Wl,-Bstatic -lmono -Wl,-Bdynamic `pkg-config --libs-only-l mono | sed -e "s/\-lmono //"` temp.o
Done
[email protected]:~$ ./hello
hello world
[email protected]:~$ ldd hello
linux-gate.so.1 => (0xb7875000)
libdl.so.2 => /lib/libdl.so.2 (0xb785f000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb7845000)
libm.so.6 => /lib/libm.so.6 (0xb781e000)
libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xb7819000)
librt.so.1 => /lib/librt.so.1 (0xb7810000)
libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0xb7741000)
libc.so.6 => /lib/libc.so.6 (0xb75e4000)
/lib/ld-linux.so.2 (0xb7876000)
libpcre.so.3 => /lib/libpcre.so.3 (0xb75af000)
- 1. Wie man eine Schaltfläche in React Native?
- 2. Wie konvertiert man eine Zeichenfolge in ISOString?
- 3. Wie konvertiert man eine Wörterbuchliste in dict?
- 4. Wie konvertiert man FileBytes in eine Datei?
- 5. Wie konvertiert man org.eclipse.xsd.XSDSchema in eine Zeichenfolge?
- 6. Wie konvertiert man eine Zeichenkette in Matlab?
- 7. Wie konvertiert man eine Zeichenkette in eine Ganzzahl in C#
- 8. Wie konvertiert man eine Zeichenfolge in eine Karte in Javascript?
- 9. Wie konvertiert man eine Zeichenfolge in eine Funktion in Clojure?
- 10. Wie konvertiert man eine Zeichenfolge in eine SOAPMessage in Java?
- 11. Wie konvertiert man eine Liste in eine Zeichenfolge in tcl
- 12. Wie konvertiert man eine Statistikausgabe in eine Unix-Berechtigungszeichenfolge
- 13. Wie konvertiert man einfach eine java8-Karte in eine concurrentMap?
- 14. Wie konvertiert man eine Beta-Verteilung in eine einheitliche Verteilung?
- 15. Wie konvertiert man eine numpige Matrix in eine Pandas-Serie?
- 16. Wie konvertiert man eine for-Schleife in eine while-Schleife?
- 17. MATLAB: Wie man eine Zeichenfolge in eine Tabelle konvertiert
- 18. Wie konvertiert man eine Zeichenfolge in eine Enum?
- 19. Wie konvertiert man eine SortedList in eine SortedList <>
- 20. Wie konvertiert man eine Zeichenfolge in eine android.net.Uri
- 21. Wie konvertiert man eine java.util.Collections.unmodifyableMap in eine unveränderliche Scala Map?
- 22. Bash: Wie konvertiert man eine Zahl in eine Monatszeichenfolge?
- 23. Wie konvertiert man eine Zeichenfolge in eine Dezimalzahl?
- 24. Java - Wie konvertiert man eine Color.toString() in eine Farbe?
- 25. Wie konvertiert man eine .dcm-Datei in eine PDF-Datei?
- 26. Wie konvertiert man eine Base64-Zeichenfolge in eine Datei?
- 27. Wie konvertiert man eine Adjazenzmatrix in eine Adjazenzliste mit Python?
- 28. Wie konvertiert man eine Zeichenfolge, die eine hexadezimale Ganzzahl enthält
- 29. Wie konvertiert man ein Dictionary in eine Sequenz in F #?
- 30. Wie konvertiert man ein Bool in Go in eine Zeichenkette?
Alles, was ich habe, ist die exe. Ich habe nicht den Code, um mit NGen zu kompilieren. – devnull
In der Zwischenzeit werde ich versuchen, die .NET-Exe in Wein zu laufen. – devnull
NGen kompiliert IL zur Bearbeitung von Anweisungen. Es verwandelt die .NET-Abhängigkeiten auf wundersame Weise in native Win32-Abhängigkeiten oder verwaltete Heapspeicher in nicht verwalteten nativen Heapspeicher.Sie benötigen weiterhin die CLR, um ein NGen-Modul auszuführen. @devnull: Sie benötigen keinen Quellcode, um NGen gegen ein Modul auszuführen, ähnlich wie Sie keinen Quellcode zum Ausführen des JIT-Compilers benötigen. – IInspectable