2011-03-21 81 views
0

我在Windows操作系統上開發了一個使用VB .NET的應用程序。如果我想爲使用Linux的客戶端啓用此應用程序,我該怎麼做?他們是否需要購買VB .NET?我完全失去了這個工作方式。我從來沒有在linux上工作過,任何人都可以幫忙。從windows到linux的移植.net應用程序

+0

您使用哪種GUI框架?單聲道不支持WPF。 WinForms通常可以工作,但看起來很陌生。如果你使用任何p/invoke native API職員,你也會遇到問題。 – CodesInChaos 2011-03-21 08:43:50

+2

您是否考慮將其從桌面應用程序更改爲Web應用程序? – MarkJ 2011-03-21 10:39:05

回答

2

有兩種選擇:

  1. 使用Wine

無需重新編譯運行與Mono

  • 運行應用程序的應用程序。我會首先用兩者來測試這個應用程序,然後決定哪一個會花費較少的努力來修復所產生的問題。

  • +0

    葡萄酒是否適用於WPF或.NET4? – mbx 2011-03-21 07:59:14

    +1

    不,.NET4的支持是不完整的。 – 2011-03-21 08:16:22

    0

    有一些缺陷:打包的單聲道開發和編譯器可能是較舊的,並且自己編譯它們並不容易。通常你至少得到了.NET 2.0的支持。

    在Ubuntu上你可以安裝IDE和編譯器爲根:

    apt-get install monodevelop mono-vbnc 
    

    其餘應該拉到與依賴。

    0

    您不必購買VB.NET。你需要做的是找出你的.NET應用程序是否與單聲道兼容。您可以檢查您與MoMA的兼容性,並且/或嘗試使用mono在Linux上編譯/運行您的應用程序。

    1

    在你的VB.Net應用程序中,如果你還沒有使用任何Windows專用的東西(Dllimport,COM組件,本地庫等),那麼你可以嘗試將應用程序按原樣複製到帶有Mono的Linux機器上並運行它。我的一些應用程序在過去像這樣工作。如果它在開箱即用的情況下運行,那麼您就不必費心在Linux環境中編譯您的應用程序。

    6

    Mono完全支持Windows.System.Forms,但不支持WPF。這意味着只要安裝了Mono,您的應用程序就很可能在Linux上工作。

    然而,有一些事情你需要知道。例如,如果你手動創建文件路徑,你需要改變它。您有Path.CombinePath.PathSeparator來構建路徑。

    由於windows使用\r\n,而Linux使用\n,所以當涉及到新行時,您應該注意。使用Environment.NewLine而不是硬編碼\r\n

    你有一個單聲道這裏開發頁面:http://www.mono-project.com/Mono_For_.Net_Developers

    所有最好的是遷移分析:http://www.mono-project.com/MoMA,檢查所有保持兼容的問題。

    相關問題