Ответ 1
Решено, добавив параметр -lib: следующим образом:
mcs helloWinforms.cs -pkg:dotnet -lib:/usr/lib/mono/2.0
Я новичок в Linux и моно. Я установил mono на новую машину Raspberry Pi, используя
sudo apt-get install mono-complete.
Я также сделал обновление и обновление с помощью apt-get.
Затем я следил за примерами helloWorld на странице Mono Basics на веб-сайте монопроекта: http://www.mono-project.com/docs/getting-started/mono-basics/
Мне удалось создать и запустить первый пример Console Hello World, используя следующее:
mcs hello.cs
mono hello.exe
Однако, когда я попробовал следующий пример "Winforms Hello World", я обнаружил следующую ошибку при запуске "mcs hello.cs -pkg: dotnet":
error CS0006: Metadata file 'cscompmgd.dll' could not be found
Однако, он работает, если я использую gmcs вместо mcs.
Я искал здесь и там, но не повезло.
Я могу найти ссылку на этот файл 'cscompmgd.dll' в каталоге '/usr/lib/mono/2.0' в моей малиновой Pi.
Установленная моно версия 3.2.8 (возвращается с помощью "mono -version" ).
Кто-нибудь знает, почему он работает с gmcs, но он не работает с mcs?
Спасибо.
Решено, добавив параметр -lib: следующим образом:
mcs helloWinforms.cs -pkg:dotnet -lib:/usr/lib/mono/2.0
Решение с добавлением
-lib:/usr/lib/mono/2.0
был не лучшим в моем случае (он нарушил зависимость от некоторых 4.0 элементов, в частности "System.Threading" ).
Другим, очень грязным решением является копирование
/usr/lib/mono/2.0/cscompmgd.dll
в папку проекта (или где бы он ни находился), и добавьте
-r:cscompmgd.dll
при компиляции (или добавлении имени файла после списка других включенных библиотек, указанных в '-r'). Вероятно, есть способ сделать это без копирования файла, но это выходит за рамки моих возможностей.
Итак, вы закончите:
mcs helloWinforms.cs -pkg:dotnet -r:cscompmgd.dll