mono-mcs';Winforms Hello World';给出编译错误CS006:元数据文件';
本文关键字:CS006 错误 文件 编译 元数据 Winforms Hello World mono-mcs | 更新日期: 2023-09-27 18:26:00
我是linux和mono的新手。我使用将mono安装到一台新的树莓派机器上
sudo apt-get install mono-complete.
我还使用apt-get进行了更新和升级。
然后,我在Mono项目网站的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
然而,如果我使用gmc而不是mcs,它是有效的。
我在谷歌上到处搜索,但没有运气。
我可以在Raspberry Pi的"/usr/lib/mono/2.0"目录中找到指向此文件"cscompmgd.dll"的链接。
安装的单声道版本为3.2.8(使用"单声道版本"返回)。
有人知道为什么它能用gmc,但不能用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
到您的项目文件夹(或Makefile所在的位置)并添加
-r:cscompmgd.dll
编译时(或在"-r"指定的其他包含库的列表后添加文件名)。可能有一种方法可以在不复制文件的情况下做到这一点,但这超出了我的能力。
所以你最终得到了:
mcs helloWinforms.cs -pkg:dotnet -r:cscompmgd.dll