Подтвердить что ты не робот

Mono mcs "Winforms Hello World" дает ошибку компиляции CS006: файл метаданных "cscompmgd.dll" не найден

Я новичок в 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?

Спасибо.

4b9b3361

Ответ 1

Решено, добавив параметр -lib: следующим образом:

mcs helloWinforms.cs -pkg:dotnet -lib:/usr/lib/mono/2.0

Ответ 2

Решение с добавлением

-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