Просто хотел добавить, что если вы передадите -z в mkbundle, то вам нужно будет передать -lz в gcc. У меня были некоторые проблемы с получением приложения с winforms и сетевым доступом для правильной работы, и мне пришлось скопировать machine.config из C: \ Mono \ etc \ mono \ 4.0 \ machine.config туда, где было мое приложение. Затем я передал --machine-config machine.config в mkbundle.
Все эти шаги довольно запутанные и разочаровывающие, почему не так просто, как просто набрать mkbundle --deps app.exe? Я попытался внести изменения в шаблон, используемый mkbundle, и скомпилировать его сам, но он не запустится. Сейчас я зашел так далеко, что скачал моноисточник и попытался собрать все это, но сомневаюсь, что это сработает. Если кто-нибудь может объяснить, что, черт возьми, происходит с mkbundle, чтобы сделать это настолько раздражающим, я был бы заинтересован внести свой вклад.