Minimale Laufzeit für Mono für ein Vb.net VS2005 App auf Windows?
-
11-07-2019 - |
Frage
Weiß jemand, oder einen Link zu einem Artikel oder einen Schritt für Schritt Anleitung, die mir sagen würde, wie eine .net MONO-Anwendung installieren, mit einem Minimum zu verteilen? Das volle Paket von Mono ist wie 75 MB aber ich weiß, al Menge davon ist der Compiler und Bibliotheken, die ich nicht brauche.
Ich will nur die Mindestlaufzeit-Dateien.
Welche Dateien würde ich für ein einfaches ‚Hallo Welt‘ winforms app verteilen müssen?
Ich habe gerade versucht, das Löschen von Dateien, bis ich mit etwas aufkommen, die gearbeitet, aber es funktioniert nur an der Maschine, die Mono darauf installiert hatten. Hier sind die Dateien, die ich versuchte,
Ich habe ein Verzeichnis für meine Anwendung. In diesem Verzeichnis habe ich zwei weitere Verzeichnisse
\ bin \ Lib \ Mono \ 2.0
im Verzeichnis \ Mono \ lib \ mono \ 2.0 ich die mscorlib.dll Datei setzen im Verzeichnis \ bin habe ich die folgende
Accessibility.dll, MyApp.exe (dies ist der Grund Hallo Welt ich in VS2005 tat), iconv.dll, intl.dll, libglib-2.0-0.dll, libgthread-2.0-0.dll, Microsoft.VisualBasic.dll, mono.dll, mono.exe, Mono.Posix.dll, System.dll, System.Drawing.dll, System.Windows.Forms.dll
Dann wird aus dem Verzeichnis \ bin ich lief ‚mono MyApp.exe‘ und es funktionierte auf meinem Mono installiert Maschine, aber keine anderen.
Was würde ich es vorziehen, ist ein ‚xcopy‘ Lösung, wo es keine eigentliche Installation notwendig wären, aber müssen nur die Runtime-Dateien enthalten (wie wenn Sie von einem USB-Stick ausgeführt wird)
Bitte beachten Sie, dass diese auf einem Windows-Computer ausführen, keine Linux-Box.
Ich habe versucht, läuft mkbundle2 (es ist eine .net 2.0 app) und bekam diesen Fehler
C: \ Programme \ Mono-2.0.1 \ bin> mkbundle2 C: \ Projects \ SingleExeTest \ bin \ Release \ SingleExeTest.exe --deps OS ist: Windows-Quellen: 1 Auto-Abhängigkeiten: Wahre Einbettung: C: \ Projects \ SingleExeTest \ bin \ Release \ SingleExeTest.exe Einbettung: C: \ PROGRA ~ 1 \ MONO-2 ~ 1.1 \ lib \ mono \ 2.0 \ mscorlib.dll Einbettungs: C: \ PROGRA ~ 1 \ MONO-2 ~ 1.1 \ lib \ mono \ 2.0 \ Microsoft.VisualBasic.dll
Einbetten: C: \ PROGRA ~ 1 \ MONO-2 ~ 1.1 \ lib \ mono \ 2.0 \ System.dll
Einbetten: C: \ PROGRA ~ 1 \ MONO-2 ~ 1.1 \ lib \ mono \ 2.0 \ System.Configuration.dll
Einbetten: C: \ PROGRA ~ 1 \ MONO-2 ~ 1.1 \ lib \ mono \ 2.0 \ System.Xml.dll
Einbetten: C: \ PROGRA ~ 1 \ MONO-2 ~ 1.1 \ lib \ mono \ 2.0 \ System.Security.dll
Einbetten: C: \ PROGRA ~ 1 \ MONO-2 ~ 1.1 \ lib \ mono \ 2.0 \ Mono.Security.dll
Einbetten: C: \ PROGRA ~ 1 \ MONO-2 ~ 1.1 \ lib \ mono \ 2.0 \ System.Windows.Forms.dll
Einbetten: C: \ PROGRA ~ 1 \ MONO-2 ~ 1.1 \ lib \ mono \ 2.0 \ System.Drawing.dll
Einbetten: C: \ PROGRA ~ 1 \ MONO-2 ~ 1.1 \ lib \ mono \ 2.0 \ System.Data.dll
Einbetten: C: \ PROGRA ~ 1 \ MONO-2 ~ 1.1 \ lib \ mono \ 2.0 \ Mono.Data.Tds.dll
Einbetten: C: \ PROGRA ~ 1 \ MONO-2 ~ 1.1 \ lib \ mono \ 2.0 \ System.Transactions.dll Einbetten: C: \ PROGRA ~ 1 \ MONO-2 ~ 1.1 \ lib \ mono \ 2.0 \ System.EnterpriseServices.dll
Einbetten: C: \ PROGRA ~ 1 \ MONO-2 ~ 1.1 \ lib \ mono \ 2.0 \ Mono.WebBrowser.dll
Einbetten: C: \ PROGRA ~ 1 \ MONO-2 ~ 1.1 \ lib \ mono \ 2.0 \ Mono.Posix.dll
Einbetten: C: \ PROGRA ~ 1 \ MONO-2 ~ 1.1 \ lib \ mono \ 2.0 \ Accessibility.dll Kompilieren: als -o temp.o temp.sUnbehandelte Ausnahme: System.ComponentModel.Win32Exception: Application = 'sh', Commandline = '- c "als -o temp.o temp.s"', Current = ‚‘ bei System.Diagnostics.Process.Start_noshell (System.Diagnostics.ProcessStartIn fo Startinfo, System.Diagnostics.Process-Verfahren) [0x00000] at System.Diagnostics.Process.Start_common (System.Diagnostics.ProcessStartInf o Startinfo, System.Diagnostics.Process-Verfahren) [0x00000] at System.Diagnostics.Process.Start (System.Diagnostics.ProcessStartInfo Start Info) [0x00000] bei MakeBundle.Execute (System.String cmdLine) [0x00000] bei MakeBundle.GenerateBundles (System.Collections.ArrayList-Dateien) [0x00000] bei MakeBundle.Main (System.String [] args) [0x00000]
C: \ Programme \ Mono-2.0.1 \ bin>
Irgendwelche Vorschläge?
Lösung 2
Hey, sieht aus wie ich habe es funktioniert!
Ich habe Mono in c zu installieren: \ mono statt c: \ program files \ mono
Ich denke, es hat nicht die Räume wie
Vielen Dank für alles, was Sie helfen!
Andere Tipps
Sie müssen „mkbundle“ verwenden, um eine in sich geschlossene ausführbare Datei zu erstellen, die in einer Windows-Umgebung verwendet werden kann. Das Endergebnis ist eine ausführbare Datei, die alle der Mono Bibliotheken, die Sie brauchen, und keiner von denen, enthält Sie dies nicht tun.
Achten Sie auf das "Bündel" Überschrift auf dieser Webseite . Es sollte erhalten Sie gehen. Beachten Sie, dass dies für reine Mono-Anwendungen; es behandelt nicht externe Abhängigkeiten wie GTK.
EDIT BEGINNT HIER
Hinweis: Von dem mkbundle Manpage ...
Fenster
Auf Windows-Systemen, ist es notwendig Unix-Werkzeugkette haben werden für mkbundle installiert zu arbeiten. Sie können Cygwin verwenden und gcc installieren, gcc-mingw und als Pakete.
Beachten Sie, dass das binutils Paket enthält wie.
Cygwin können hier . (I installieren Sie es auf alle meine Windows-Rechnern und kann es sehr empfehlen.) Beachten Sie auch, dass Cygwin nur auf der Dev-Maschine erforderlich ist. Es muss nicht an das Ziel (e) eingesetzt werden.