.NET桌面程式(WINFORM或WPF)的部署

03ngnntds發表於2019-04-26

目前的WIN7作業系統自帶了.NET3.5,使用者基數比較大,後面的WIN8,WIN10的自帶.NET版本都不一樣。WINDOWS SERVER作業系統預設的.NET是不啟用的,需要手動啟用.NET元件。由於桌面程式很少有在伺服器系統上執行的,所以不考慮SERVER系統。

在開發前端桌面程式時,以前的前端程式很多會用MFC開發,或者基於MFC的介面庫進行開發,好處是不需要關心作業系統,可以直接執行。也有透過DUILIB、SOUI等基於DirectUI的介面庫進行開發,這種比MFC更靈活,介面可以做的更炫,其它的比如用QT或者WTL等的也比較普遍。

相對來說,開發最簡單的方法是用C#基於WPF或者WINFORM來開發,擼程式碼比較快。但是這種開發有個問題,就是.NET的相容性問題。如果安裝包要附帶一個.NET,這會導致部署很麻煩甚至有時候會失敗。

因為現在XP作業系統很少有用的了,如果有的話,那隻能是讓它裝上.NET4.0了(XP最多支援到.NET4.0,為什麼不是讓使用者安裝.NET3.5,因為3.5的安裝包太大)。

說了這麼多,開始實際說下部署辦法。由於WINDOWS VISTA版本沒實際測過,這個你們自己考慮測試吧。

一、首先考慮你的程式要不要在XP上跑,如果需要的話,安裝包在安裝過程中去檢測下使用者是否安裝了.NET,如果沒裝,則提示使用者安裝.NET,或者直接安裝包附帶一個.NET4.0的安裝包自動執行。

二、如果不想相容.NET,只想在WIN7或以上版本執行,那麼基於.NET3.5來開發WINFORM或WPF。在.NET3.5開發的程式,有時候介面效果和基於.NET4.0等版本效果有一定差別,需要測試。


 

三、在App.config檔案裡新增上如下程式碼

注意,startup節點要放在configuration內部的最前面。

這段配置的意思是比如你作業系統有.NET3.5和.NET4.0同時存在,則先用.NET3.5來啟動程式,如果沒有,則再用.NET4.0來啟動程式。當然如果沒.NET4.0有.NET4.5那就會以.NET4.5來啟動程式。

如果你不加上面的程式碼,那麼你基於.NET3.5開發程式,到了WIN10上會直接無法執行。

注意:這個配置檔案最後要和EXE程式一起釋出的,比如你的EXE名字叫HAHA.EXE,那麼Config就比如HAHA.EXE.CONFIG名字。這個HAHA.EXE.CONFIG裡就必須帶上上面的配置,預設情況下,VS會自動輸出該配置,不需要手動操作。

有個別使用者的.NET3.5安裝問題,會導致程式無法正常執行,這時候可以注意掉這一行,給使用者安裝上.NET4.0試下。

四、確保你的程式針對.NET3.5,.NET4.0,.NET4.5都能執行正常,最終可以在純淨的WIN7,WIN8,WIN10分別測試下程式,不需要額外安裝.NET了。

五、因為.NET的特殊性,生成的程式最好加密處理下,不然容易被人破解,比如可以考慮開源.net混淆器ConfuserEx。

上述操作完成後,假如只是針對WIN7及以上的作業系統進行桌面程式部署,那麼我們不用附帶.NET,也不用使用者去安裝.NET,可以直接雙擊就能執行。

文章來源:搜尋引擎大全


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69911024/viewspace-2642590/,如需轉載,請註明出處,否則將追究法律責任。

相關文章