Xamarin中的Mono / MonoGame项目中缺少DLL

时间:2013-06-24 00:32:25

标签: c# mono gtk xamarin

我刚刚开始使用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)at   Cairo.NativeMethods.cairo_image_surface_create(格式格式,Int32   width,Int32 height)在Cairo.ImageSurface..ctor(格式格式,Int32   宽度,Int32高度)在VGame.Renderer.Resize(Int32宽度,Int32   高度)在Arena.Program.Main()的VGame.VectorGameSession..ctor()

1 个答案:

答案 0 :(得分:0)

实际上有一种方法可以告诉Xamarin将DLL包含在输出文件夹中。

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

要在。二进制输出文件夹中包含.dll文件的本地副本,右键单击中的并检查本地副本 < /强>

修改
如果您手动想要包含.dll文件,请右键单击引用文件夹,单击Edit References,选择.Net-Assembly并导航到.dll文件。