.NET桌面程式(WINFORM或WPF)的部署
目前的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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- wpf winform 選擇檔案或選擇資料夾程式碼ORM
- .NET 開源免費圖表元件庫,Winform,WPF 通用元件ORM
- ClickOnce部署Winform程式的方方面面ORM
- .NET混合開發解決方案12 網頁JS呼叫C#方法訪問WinForm或WPF窗體網頁JSC#ORM
- MFC,QT與WinForm,WPF簡介QTORM
- WPF窗體中嵌入/使用WinForm類/控制元件(基於.NET Core)ORM控制元件
- wpf專案使用winform控制元件ORM控制元件
- .Net WInform開發筆記(二)Winform程式執行結構圖ORM筆記
- 在WPF中使用WinForm控制元件方法ORM控制元件
- WinForm 應用程式的打包和部署_簡單版(圖文)ORM
- Windows服務無法啟動桌面應用程式(Winform介面)WindowsORM
- 基於Winform、WPF等的客戶端檔案下載ORM客戶端
- WPF閃爍預警動畫的控制元件製作及winform呼叫WPF控制元件的方法動畫控制元件ORM
- .net 8 WPF釋出程式只生成exe
- 【.net基礎】--.NET、winform、Asp.Net區別ORMASP.NET
- .net8 winform程式使用EntityFrameworkCore連線資料庫ORMFramework資料庫
- Docker 部署net5程式Docker
- 空閒時間研究一個小功能:winform桌面程式如何實現動態更換桌面圖示ORM
- WPF將視窗置於桌面下方(可用於動態桌面)
- 後續來啦:Winform/WPF中快速搭建日誌皮膚ORM
- Winform 程式多開ORM
- .net winform程式下使用firefox作為Web瀏覽器ORMFirefoxWeb瀏覽器
- 快速搞懂.NET 5/.NET Core應用程式的釋出部署
- 使用 Kubernetes 來部署你的 Laravel 程式Laravel
- .NET Core應用程式的2種部署方式
- 【.NET6+WPF+Avalonia】開發支援跨平臺的WPF應用程式以及基於ubuntu系統的演示Ubuntu
- C#.net winform skin 皮膚大全C#ORM
- 使用WPF或AspNetCore建立簡易版ChatGPT客戶端,打造屬於自己的AI助手NetCoreChatGPT客戶端AI
- .net開發筆記(十八) winform中的等待框筆記ORM
- WPF + Winform 解決管理員許可權下無法拖放檔案的問題ORM
- 利用cygwin連線gnome或kde的桌面(轉)
- Winform引用mshtml程式集的問題 (轉)ORMHTML
- .NET5 WPF進階教程
- 開始你的第一個多語言版本的dotNET 應用程式(WinForm篇) (轉)ORM
- WPF 程式使用 MediatR
- 【Dotnet 工具箱】WPF UI - 現代化設計的開源 WPF 框架UI框架
- 使用ASP.NET Blazor Server 寫混合桌面程式的瘋狂想法ASP.NETBlazorServer
- 用VC++.net製作WinForm Application (轉)C++ORMAPP