我下载了Mono并在Win 7 64位上安装了它
我去这个网站是为了遵循http://www.mono-project.com/Mono_Basics的指示
我打开mono命令提示符并编译并运行控制台hello world。
然后,我尝试用以下方法编译窗口化的hello world示例
gmcs hello.cs -pkg:gtk-sharp-2.0 我明白了
C:\Code\NoControl\Mono>gmcs hello.cs -pkg:gtk-sharp-2.0
error CS0006: Metadata file `C:/PROGRA\~2/MONO-2\~1.8/lib/mono/gtk-sharp-2.0/pango-sharp.dll' could not be found
error CS0006: Metadata file `C:/PROGRA\~2/MONO-2\~1.8/lib/mono/gtk-sharp-2.0/atk-sharp.dll' could not be found
error CS0006: Metadata file `C:/PROGRA\~2/MONO-2\~1.8/lib/mono/gtk-sharp-2.0/gdk-sharp.dll' could not be found
error CS0006: Metadata file `C:/PROGRA\~2/MONO-2\~1.8/lib/mono/gtk-sharp-2.0/gtk-sharp.dll' could not be found
error CS0006: Metadata file `C:/PROGRA\~2/MONO-2\~1.8/lib/mono/gtk-sharp-2.0/glib-sharp.dll' could not be found
Compilation failed: 5 error(s), 0 warnings我该怎么解决这个问题?
这是类似于这里的问题,cannot compile hello.cs for gtk# using mono command prompt没有得到回答。
发布于 2012-10-20 00:54:39
这些都是有助于指出问题根源的答案。然而,到目前为止,最简单的解决方案是将Mono安装到名称中没有空格的文件夹中。安装时,只需选择"C:\SDK\Mono“之类的内容即可。问题解决了,没有什么古怪的工作
发布于 2012-10-02 15:34:04
我发现在Windows7上,Mono已被安装为“Program”的子目录,它的一个工作方法是在C:保存目录链接(例如,MonoLinks)根目录下创建一个文件夹。然后,从命令提示符进入这个目录并创建一个目录连接,给它一个不包含空格的名称。
C:\MonoLinks>mklink /J Mono "C:\Program Files\Mono-2.10.8"这样做的效果是创建一个名为Mono的可遍历目录(链接),该目录不仅将显示Mono安装的内容,而且可供程序访问,而无需转换为其原始路径名。这可以很容易地在C:的根目录中创建,但是有了一个通用文件夹(MonoLinks),如果需要的话,可以在其中创建额外的链接,而不需要混淆C:的根。
接下来的事情(因为在安装过程中PATH环境变量没有更新)是更新PATH环境变量,以便它指向安装中的bin目录。在“控制面板”中,用户帐户,选择“更改我的环境变量”并编辑路径变量以包含C:\MonoLinks\Mono\bin (即添加分号和路径属性文本末尾的路径)。
发布于 2012-06-13 18:41:24
-pkg在Windows上似乎存在缺陷。在干净的命令提示符下,如果您将Program Files\Mono\bin放置在路径上,gmcs将阻塞语法并提供有关Files\Mono\...的错误,指示与路径名中的空格相关的错误。如果您将PROGRA~1\MONO\bin放置在您的路径上或使用Mono命令提示符,它将阻塞并给出有关PROGRA\~1/MONO/...的错误,指示与tildes相关的错误(等等)。并逃离他们。
请注意,虽然我已经给出了32位示例,但没有理由不适用于64位版本,PROGRA~2和Program Files (x86)。
我发现的一个解决办法是使用完整的路径,根据pkg-config返回的信息向gmc提供单独的-r[eference]参数。尝试:
gmcs hello.cs -r:C:/PROGRA~2/MONO-2~1.8/lib/mono/gtk-sharp-2.0/gtk-sharp.dll
-r:C:/PROGRA~2/MONO-2~1.8/lib/mono/gtk-sharp-2.0/gdk-sharp.dll
...或者更好的是:
gmcs hello.cs -r:"C:\Program Files (x86)\Mono-2.10.8\lib\mono\..." -r:"..."(即全路径)
如果使用的是NAnt,请尝试删除<pkg-references/>并添加:
<include name="C:\Program Files\Mono\lib\mono\gtk-sharp-2.0\gtk-sharp.dll" />
<include name="C:\Program Files\Mono\lib\mono\gtk-sharp-2.0\gdk-sharp.dll" />
...在<references/>下。
请原谅我使用不一致和不完整的路径名称;这个答案是一个指南,而不是复制粘贴解决方案。
https://stackoverflow.com/questions/10630051
复制相似问题