我是linux和mono的新手。我使用
将mono安装到新的Raspberry Pi机器上sudo apt-get install mono-complete.
我也使用apt-get进行了更新和升级。
然后我在单项目网站的Mono Basics页面中关注了helloWorld示例: http://www.mono-project.com/docs/getting-started/mono-basics/
我设法建立并运行了第一个控制台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,它会起作用。
我在这里和那里用Google搜索但没有运气。
我可以找到此文件的链接' cscompmgd.dll' in' /usr/lib/mono/2.0'我的Raspberry Pi中的目录。
已安装的单声道版本为3.2.8(使用' mono --version'返回)。
有谁知道为什么它适用于gmcs但它不能与mcs一起使用?
谢谢。
答案 0 :(得分:21)
通过添加-lib:选项解决此问题:
mcs helloWinforms.cs -pkg:dotnet -lib:/usr/lib/mono/2.0
答案 1 :(得分:1)
添加
的解决方案-lib:/usr/lib/mono/2.0
在我的情况下,不是最好的(它破坏了对某些4.0元素的依赖,特别是' System.Threading')。
另一个非常脏的解决方案是复制
/usr/lib/mono/2.0/cscompmgd.dll
到您的项目文件夹(或Makefile所在的位置)并添加
-r:cscompmgd.dll
编译时(或在' -r')指定的其他包含库的列表之后添加文件名。 可能有一种方法可以在不复制文件的情况下完成,但这超出了我的能力范围。
所以你最终得到:
mcs helloWinforms.cs -pkg:dotnet -r:cscompmgd.dll