2013-06-24 26 views
1

我刚开始使用MonoGame在Xamarin Studio中制作游戏。不过,我也使用Mono.Cairo来渲染图形。DLL在Xamarin的Mono/MonoGame项目中缺失

一切工作正常在我的电脑上,代码编译和运行,没有问题。当我将游戏交给我的朋友时,它不起作用,说Mono.Cairo.dll丢失了。

所以我试图包括与游戏Mono.Cairo.dll。显然,在Xamarin Studio中没有办法做到这一点,除了在Mono文件夹中找到文件并在每次分发时将其复制到输出bin文件夹中,但没关系,没有什么大不了的。

然后我的朋友看到​​libcairo-2.dll丢失了。可以理解,因为他的电脑没有安装GTK +,而Mono.Cairo.dll只是包装。但是,从GTK +网站下载libcairo-2.dll并将其包含在游戏中后,他得到相同的错误消息,称libcairo-2.dll丢失,即使它正好位于Mono.Cairo旁边的文件夹中。 DLL和游戏可执行文件。

我是否错过了超级明显的东西,或者现在没有办法分发这个游戏,除非要求下载和安装GTK +?另外,是否真的没有办法将Xamarin Studio设置为自动将这些所需的DLL包含在输出文件夹中?

错误消息:

未处理的异常:System.DllNotFoundException:无法加载DLL 'libcairo-2的.dll':指定的模块找不到。在 Cairo.NativeMethods.cairo_image_surface_create(格式格式,的Int32 宽度,高度的Int32)在Cairo.ImageSurface..ctor(格式格式,的Int32 宽度,高度的Int32)在VGame.Renderer:(0x80070 07E异常 从HRESULT)。调整(的Int32宽度的Int32 高度)在VGame.VectorGameSession..ctor()在Arena.Program.Main()

回答

0

实际上还有一种方式告诉Xamarin包括在输出文件夹中的DLL文件。

在您的解决方案中,选择您的项目,然后打开/展开References文件夹。

要包含一个.dll文件在你的二进制输出文件夹的本地副本,你右键单击它在引用文件夹和检查本地副本

编辑:
如果想手动包括一个.dll文件,右键单击引用文件夹,单击Edit References,选择.Net-Assembly并导航至您的.dll文件。