Кто-нибудь знает или имеет ссылку на статью или пошаговое руководство, в котором рассказывается, как распространять приложение .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 - Операционная система:
Источники 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 \ МОНО-2 ~ 1.1 \ Lib \ моно \ 2.0 \ Microsoft.VisualBasic.dll
встраивание: C: \ PROGRA ~ 1 \ MONO-2 ~ 1.1 \ lib \ mono \ 2.0 \ System.dll
вложение:
C: \ PROGRA ~ 1 \ МОНО-2 ~ 1.1 \ Lib \ моно \ 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 \ МОНО-2 ~ 1.1 \ Lib \ моно \ 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: \ PROGRA ~ 1 \ MONO-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 \ МОНО-2 ~ 1.1 \ Lib \ моно \ 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
Компиляция: как -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 startInfo,
System.Diagnostics.Process process) [0x00000] в
System.Diagnostics.Process.Start_common
(System.Diagnostics.ProcessStartInf или startInfo,
System.Diagnostics.Process process) [0x00000] в
System.Diagnostics.Process.Start (System.Diagnostics.ProcessStartInfo
Информация начала) [0x00000] в MakeBundle.Execute (System.String cmdLine)
[0x00000] в MakeBundle.GenerateBundles
(Файлы System.Collections.ArrayList) [0x00000] в MakeBundle.Main
(System.String [] args) [0x00000]
C: \ Program Files \ Mono-2.0.1 \ bin>
Есть предложения?