我正在开发用 C# 编写的 Mono GTK# 桌面应用程序。我在 Mac (OS X v10.6.7) 上使用 MonoDevelop IDE (v2.4.2) 开发了我的应用程序。我的应用程序依赖于 GTK# 库(显然)以及用于运行本地 ASP.NET 服务器的 Mono.WebServer2
库。
我已经在自己的 Mac 和其他 Mac 上测试了我的应用程序。一切都很好。现在,我有兴趣将我的应用程序移植到其他平台(特别是 Windows 7 和 Ubuntu v11.04)。我一直在使用 mkbundle
命令,但我没有运气为 Mac OS X 以外的其他平台创建工作包。
由于我尝试了多种不同的解决方案但均未成功,因此我想听听 Mono 开发人员的意见。您如何将您的应用程序移植到其他平台?
我使用 Visual Studio 开发 C# 已有很长时间,但我是 Mono 开发环境的新手。因此,非常感谢详细的解释。
非常感谢!
最佳答案
这听起来不像是在谈论移植,而是打包。 MonoDevelop 的“项目/创建包”功能可以创建简单的二进制包(zips 等)或源包(源代码加上 makefile),但这些并不是分发给大多数最终用户的理想形式。需要做一些额外的工作才能为每个平台制作一个完美的安装程序。
mkbundle 将 Mono 运行时捆绑到您的应用程序中,因此它创建了 100% 特定于平台的二进制文件。
对于 Mac,分发应用程序的通常方式是作为应用程序包。 MonoDevelop 不会为 GTK# 项目自动执行此操作,但我解释了如何执行此操作 on my blog .
对于 Ubuntu,您可以分发一个 zip 二进制文件并要求您的用户安装 Mono、GTK# 和 xsp。如果您创建一个 .deb 包,您可以将这些依赖项嵌入到包 list 中。 MonoDevelop 没有任何用于创建 deb/rpm linux 包的工具,我自己也不熟悉这个过程。
对于 Windows,您可以提供二进制文件的 zip,并要求您的用户安装 .NET 和 GTK# for .NET。您还可以创建一个 msi 安装程序并让它检查这些先决条件。
关于c# - 如何将 Mono GTK# 应用程序移植到其他平台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6562300/