我刚开始使用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()