Кто-нибудь знает или имеет ссылку на статью или пошаговое руководство, в котором рассказывается, как распространять приложение .net MONO с минимальной установкой? Полный пакет Mono составляет примерно 75 МБ, но я знаю, что это компилятор и библиотеки, которые мне не нужны.
Мне просто нужен минимум исполняемых файлов.
Какие файлы мне нужно будет распространять для простого приложения winforms Hello World?
Я пытался просто удалять файлы, пока не придумал что-то, что работало, но это работало только на машине, на которой был установлен Mono. Вот файлы, которые я пробовал
Я создал каталог для своего приложения. В этом каталоге я создал еще два каталога
\ bin \ lib \ моно \ 2.0
в \ mono \ lib \ mono \ 2.0 я помещаю файл mscorlib.dll в каталог \ bin, я помещаю следующее
Accessibility.dll, MyApp.exe (это базовый Hello World, который я делал в VS2005), 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
Затем из каталога \ bin я запустил «mono MyApp.exe», и он работал на моем компьютере с установленным Mono, но не на других.
Я бы предпочел решение xcopy, в котором фактическая установка не требуется, а нужны только файлы времени выполнения (например, при запуске с флэш-накопителя).
Обратите внимание, что это должно работать на компьютере с Windows, а не на Linux.
Я попытался запустить mkbundle2 (это приложение .net 2.0) и получил эту ошибку
C: \ Program Files \ Mono-2.0.1 \ bin> mkbundle2 C: \ Projects \ SingleExeTest \ bin \ Release \ SingleExeTest.exe --deps ОС: Источники Windows: 1 Автоматические зависимости: Истинное внедрение: C: \ Projects Встраивание \ SingleExeTest \ bin \ Release \ SingleExeTest.exe: C: \ PROGRA ~ 1 \ MONO-2 ~ 1.1 \ lib \ mono \ 2.0 \ mscorlib.dll встраивание: C: \ PROGRA ~ 1 \ MONO-2 ~ 1.1 \ lib \ mono \ 2.0 \ Microsoft.VisualBasic.dll
встраивание: C: \ PROGRA ~ 1 \ MONO-2 ~ 1.1 \ lib \ mono \ 2.0 \ System.dll
встраивание: C: \ PROGRA ~ 1 \ MONO -2 ~ 1.1 \ lib \ mono \ 2.0 \ System.Configuration.dll
встраивание: C: \ PROGRA ~ 1 \ MONO-2 ~ 1.1 \ lib \ mono \ 2.0 \ System.Xml.dll
встраивание: C: \ PROGRA ~ 1 \ MONO-2 ~ 1.1 \ lib \ mono \ 2.0 \ System.Security.dll, встраивание: C: \ PROGRA ~ 1 \ MONO-2 ~ 1.1 \ lib \ mono \ 2.0 \ Mono. Security.dll
встраивание: C: \ PROGRA ~ 1 \ MONO-2 ~ 1.1 \ lib \ mono \ 2.0 \ System.Windows.Forms.dll
встраивание: C: \ PROGRA ~ 1 \ MONO-2 ~ 1.1 \ lib \ mono \ 2.0 \ System.Drawing.dll
встраивание: C: \ PROGRA ~ 1 \ MONO-2 ~ 1.1 \ lib \ mono \ 2.0 \ System.Data.dll
встраивание: C: \ ПРОГРАММА ~ 1 \ МОНО-2 ~ 1.1 \ lib \ mono \ 2.0 \ Mono.Data.Tds.dll встраивание: C: \ PROGRA ~ 1 \ MONO-2 ~ 1.1 \ lib \ mono \ 2.0 \ System.Transactions.dll встраивание: C: \ PROGRA ~ 1 \ MONO-2 ~ 1.1 \ lib \ mono \ 2.0 \ System.EnterpriseServices.dll
встраивание: C: \ PROGRA ~ 1 \ MONO-2 ~ 1.1 \ lib \ mono \ 2.0 \ Mono.WebBrowser.dll
встраивание: C: \ PROGRA ~ 1 \ MONO-2 ~ 1.1 \ lib \ mono \ 2.0 \ Mono.Posix.dll
встраивание: C: \ PROGRA ~ 1 \ MONO-2 ~ 1.1 \ lib \ mono \ 2.0 \ Accessibility.dll Компиляция : as -o temp.o temp.sНеобработанное исключение: System.ComponentModel.Win32Exception: ApplicationName = 'sh', CommandLine = '- c "as -o temp.o temp.s"', CurrentDirectory = '' в System.Diagnostics.Process.Start_noshell (System.Diagnostics. ProcessStartIn fo startInfo, процесс System.Diagnostics.Process) [0x00000] в System.Diagnostics.Process.Start_common (System.Diagnostics.ProcessStartInf или startInfo, процесс System.Diagnostics.Process) [0x00000] в System.Diagnostics.Process.Start ( System.Diagnostics.ProcessStartInfo start Info) [0x00000] в MakeBundle.Execute (System.String cmdLine) [0x00000] в MakeBundle.GenerateBundles (файлы System.Collections.ArrayList) [0x00000] в MakeBundle.Main (System.String [] ar ) [0x00000]
C: \ Program Files \ Mono-2.0.1 \ bin>
Какие-либо предложения?