Я использовал mono mkbundle на cygwin, чтобы скомпилировать приложение dot net, и оно отлично работает. Я использовал инструкции отсюда c # cywgwin mono mkbundle windows 7 - не могу скомпилировать файл
Готовое приложение не запустится, если следующие файлы (скопированные из папки mono / bin) не находятся в той же папке, что и приложение: mono.dll, libglib-2.0-0.dll, libgthread-2.0-0.dll , zlib.dll
Все это выглядит нормально - однако, если я запускаю команду (из cygwin)
$ objdump -p mycompiledapp.exe | grep "DLL Name"
(где «mycompiledapp.exe» - это имя приложения)
Файлы mono.dll, libglib-2.0-0.dll, libgthread-2.0-0.dll уже встроены в мое приложение.
Почему эти файлы должны находиться в той же папке, что и мое приложение, чтобы они функционировали, если они уже встроены в мое приложение?
Что-то неправильно сделал при компиляции?
Есть ли способ либо:
а) Не вставлять эти сборки в мое приложение (чтобы они могли распространяться вместе с ним)
б) Скомпилировать мое приложение, чтобы оно знало, что эти сборки встроены в приложение, и использовать их? (и не нужно распространять эти файлы с приложением)
Просто кажется, что распространять эти файлы с моим приложением - это боль, когда они уже встроены в него! (Особенно с учетом размера этих сборок - приложение с сетью в 50 тыс. Точек становится примерно 5 мегабайтами как скомпилированное моно-приложение, и для его работы необходимо распределить 4 дополнительных мегабайта сборок ... e)
Спасибо за любую информацию,
Кузница