簡體   English   中英

如何將 Mono GTK# 應用程序移植到其他平台?

[英]How to port a Mono GTK# app to other platforms?

我正在開發用 C# 編寫的 Mono GTK# 桌面應用程序。 我在 Mac (OS X v10.6.7) 上使用 MonoDevelop IDE (v2.4.2) 開發了我的應用程序。 我的應用程序依賴於 GTK# 庫(顯然)以及Mono.WebServer2庫來運行本地 ASP.NET 服務器。

我已經在我自己的 Mac 以及其他 Mac 上測試了我的應用程序。 一切都很好。 現在,我有興趣將我的應用程序移植到其他平台(特別是 Windows 7 和 Ubuntu v11.04)。 我一直在玩mkbundle命令,但在為 Mac OS X 以外的其他平台創建工作包方面沒有任何運氣。

由於我嘗試了許多不同的解決方案但都沒有成功,我想聽聽 Mono 開發人員的意見。 您如何將您的應用程序移植到其他平台?

我一直在使用 Visual Studio 開發 C#,但我是 Mono 開發環境的新手。 因此,我非常感謝詳細的解釋。

非常感謝!

聽起來您並不是在談論移植,而是在談論包裝 MonoDevelop 的“項目/創建包”function 可以創建簡單的二進制包(zip 等)或源包(源加 makefile),但這些不是分發給大多數最終用戶的理想形式。 為每個平台制作精美的安裝程序需要一些額外的工作。

mkbundle 將 Mono 運行時捆綁到您的應用程序中,因此它會創建 100% 特定於平台的二進制文件。

對於 Mac,分發應用程序的常用方式是作為應用程序包。 MonoDevelop 不會為 GTK# 項目自動執行此操作,但我在我的博客上解釋了如何執行此操作。

對於 Ubuntu,您可以分發 zip 二進制文件,並要求您的用戶安裝 Mono、GTK# 和 xsp。 如果您創建 a.deb package,您可以將這些依賴項嵌入到 package 清單中。 MonoDevelop 沒有任何工具可以創建 deb/rpm linux 包,我自己也不熟悉這個過程。

對於 Windows,您可以提供二進制文件 zip 並要求您的用戶安裝 .NET 和 GTK# for Z303CB0EF9EDB5082AZD61BBBE28。 您還可以創建一個 msi 安裝程序並讓它檢查這些先決條件。

聽起來您已經解決了 Mac 的打包問題。

在 Ubuntu 上,您需要創建一個包含您的應用程序並需要其他包作為依賴項的 a.deb package(Mono、Mono+等)WebServer。 以下鏈接應該讓您開始構建 Ubuntu 包:

https://wiki.ubuntu.com/UbuntuDevelopment

對於 Windows,如果您有 .NET 經驗,您可能已經知道如何構建安裝程序。 我會說您希望在 .NET 而不是 Mono 之上運行您的應用程序。 這就是 Mono 團隊自己做的事情(以 MonoDevelop 為例)。 將 Mono 特定位(如 Mono.WebServer2)作為應用程序的一部分引入。

您最大的問題是 GTK# 需要安裝 GTK+ C 庫。 可能最簡單的事情是檢測 GTK# 是否作為安裝程序的一部分安裝,並要求您的用戶在需要時安裝 GTK#。 無論如何,您都必須對您需要的 .NET 版本進行相同的檢測。 您可以在此處獲取 Windows 的 GTK#。

我沒有很好的說明來做這件事,但 Banshee 和 MonoDevelop 項目都做得很好。 我會看一下這些項目,因為它們會准確地告訴你需要做什么。

https://github.com/mono/monodevelop

http://git.gnome.org/browse/banshee

編輯:

我最近才意識到 GTK# 安裝程序的代碼在GitHub上。

Monodevelop 中也有打包項目。 你可以使用它們。

我懷疑 mkbundle 除了 Linux 之外是否還能正常工作。

另一種選擇是在其他平台上打開您的項目(您可以使用 Monodevelop)並構建項目並使用其他一些應用程序來構建 package。

我最近剛剛創建了我自己用 MonoDevelop 編寫的.Net 項目的 deb package。 從 MonoDevelop 我創建了一個 package 源代碼和生成文件(生成文件也由 MonoDevelop 生成),然后我使用了本指南>

http://www.webupd8.org/2010/01/how-to-create-deb-package-ubuntu-debian.html

創建deb package。 依賴項是 mono-runtime 和 gtk-sharp2。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM