c# - 如何将 Mono GTK# 应用程序移植到其他平台?

标签 c# mono monodevelop gtk# xsp2

我正在开发用 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/

相关文章:

c# - 如何在 MonoDevelop 中为 MonoTouch 项目生成 XML 注释?

iphone - 在 monotouch 中处理 json 的最佳方法是什么

c# - 如何模拟来自控制台的用户输入?

c# - Convert.ToDateTime 在 C# 从特定日期字符串

c# - 在母版页中隐藏导航栏取决于我的用户角色

mono - 运行 MonoTouch 应用程序时出现 SIGABRT 错误

c# - 在 Mono C# Readline 中捕获 Control+key

c# - Asp.Net Core 2.0-2.2 Kestrel 不提供静态内容

Raspberry Pi 上的 MonoDevelop ARMv6

mono - 不受管理的: IP: 0x26eb76,故障地址中的堆栈溢出:0xbf808ffc