我在Visual 2015中用C#语言和MonoGame框架在Windows 7(64位)上开发了一个游戏。这个游戏在Windows上运行得很好,但我也想让这个游戏在Linux上可以玩。因此,我在我的Windows上安装了带有Ubuntu15.10(64位)的VirtualBox,以测试我是否可以在Ubuntu上运行我的游戏。在试图以不同的方式编译这个游戏而看不到解决方案之后,我得出结论,在这里问几个关于将MonoGame部署到Linux的问题:
我几乎没有使用Linux的经验,所以我希望有人能回答我这些问题,也许是一个有将MonoGame游戏移植到linux的经验的人。
谢谢。
发布于 2018-07-01 23:52:34
这个问题虽然有几年的历史,但还是值得回答的。我通过Mono的mkbundle为一个在MonoGame中构建的游戏做了跨平台构建。这里是一个很好的教程,可以在Windows上这样做。
您需要下载最新的Mono版本,并将"exe“扩展名附加到位于C:\Program (x86)\mono\bin\mono的文件中。接下来,下载要部署到的平台的适当运行时,给它一个"zip“扩展,并将其解压缩到以下路径:
在此之后,您应该准备好构建;打开一个命令提示符并输入mkbundle --local-targets。如果一切顺利,则应该显示已安装的运行时。之后是为目标平台构建一个exe的问题。
下面是构建Ubuntu应用程序的示例:mkbundle HelloWorldConsole.exe --simple -o HelloWorldBundleUbuntu --cross mono-5.10.0-ubuntu-16.04-x64
请记住,一些未在Mono中实现的类(如WebBrowser )将导致构建失败。如果是这样的话,您可能需要找到解决办法。
这样,您就可以在Linux中通过在终端中输入./HelloWorldBundleUbuntu来运行文件。我在虚拟机中以这种方式运行游戏没有任何问题。
最后,如果您想使用.NET核心路由,MonoGame有一个可以使用的WIP 芯叉,但我不确定它的工作效果如何。
发布于 2020-02-05 15:45:03
除了Kimimaru已有多年的答案之外,还可以使用MonoKickstart在Mac和Linux上运行Monogame可执行文件,而不需要捆绑任何东西。如果由于第三方库或其他原因,您的项目有点难以捆绑,这就特别方便了。
您只需解压Kickstart存档并将Windows可执行文件粘贴到顶部即可。通过编辑.kick文件以指向适当的可执行文件,它们将充当中介,使用mono运行您的程序(这也提供了在目标机器上安装的功能)。
https://stackoverflow.com/questions/34224550
复制相似问题