我刚开始使用 MonoGame 在 Xamarin Studio 中制作游戏。但是,我也使用 Mono.Cairo 来渲染图形。
在我的电脑上一切正常,代码编译并运行,没有问题。当我把游戏给我朋友的时候,它不起作用,说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':找不到指定的模块。(HRESULT 例外:0x80070 07E)在 Cairo.NativeMethods.cairo_image_surface_create(格式格式,Int32 宽度,Int32 高度)在 Cairo.ImageSurface..ctor(格式格式,Int32 宽度,Int32 高度)在 VGame.Renderer.Resize(Int32 宽度, Int32 高度)在 Arena.Program.Main() 的 VGame.VectorGameSession..ctor()