Monomac Исключение, указанное инициализатором типа для System.Net.WebRequest

#c# #mono #monodevelop #monomac #app-bundle

#c# #mono #monodevelop #monomac #app-bundle

Вопрос:

Я пишу программу monomac для передачи файлов ftp на сервер. Я использовал FtpWebRequest как

 FtpWebRequest request =(FtpWebRequest)WebRequest.Create("ftp://serverip/filename");
  

Когда я запускаю этот код в monodevelop его правильной работе. Но когда я выпускаю это и запускаю снаружи monodevelop , я получаю сообщение об ошибке «Исключение, вызванное типом, для которого инициализируется System.Net.WebRequest .

Я исследовал эту ошибку и обнаружил, что у нее проблема с библиотекой libc.dylib. Если я изменю DYLD_FALLBACK_LIBRARY_PATH в сценарии запуска app(AppBundle/MacOs/AppName edit with TextEdit) as

экспорт DYLD_FALLBACK_LIBRARY_PATH="$MONO_FRAMEWORK_PATH/lib:$DYLD_FALLBACK_LIBRARY_PATH:/usr/lib"

(добавлен /usr/lib) затем он отправляет файлы. Но я должен установить mono framework во всей системе, чтобы запустить это приложение. Как только я создаю установочный пакет mac, я не могу редактировать сценарий запуска. Я попытался скопировать libc.dylib файл из /usr/lib в Appbundle(App/MonoBundle/) , но ошибка все еще существует. Кто-нибудь может мне помочь?

Ответ №1:

У меня была эта проблема. Вы добавляете библиотеки DLL monomac в пакет приложений?

Он пытается быть умным и удалять неиспользуемые методы и классы.

Я обнаружил, что он часто не включает методы, которые, по его мнению, не использовались по ошибке. Я не уверен, как заставить его включить отсутствующие методы, однако вы можете решить эту проблему, отключив связывание в настройках пакета. К сожалению, это делает приложение намного больше.