.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
- .NET混合開發解決方案12 網頁JS呼叫C#方法訪問WinForm或WPF窗體網頁JSC#ORM
- WPF窗體中嵌入/使用WinForm類/控制元件(基於.NET Core)ORM控制元件
- ComponentOne使用技巧——從Winform穿越到WPFORM
- wpf專案使用winform控制元件ORM控制元件
- 在WPF中使用WinForm控制元件方法ORM控制元件
- .net 8 WPF釋出程式只生成exe
- .net8 winform程式使用EntityFrameworkCore連線資料庫ORMFramework資料庫
- Docker 部署net5程式Docker
- 快速搞懂.NET 5/.NET Core應用程式的釋出部署
- 空閒時間研究一個小功能:winform桌面程式如何實現動態更換桌面圖示ORM
- Winform 程式多開ORM
- 【.NET6+WPF+Avalonia】開發支援跨平臺的WPF應用程式以及基於ubuntu系統的演示Ubuntu
- 後續來啦:Winform/WPF中快速搭建日誌皮膚ORM
- WPF在.NET 5 中的線路圖
- WPF將視窗置於桌面下方(可用於動態桌面)
- 使用ASP.NET Blazor Server 寫混合桌面程式的瘋狂想法ASP.NETBlazorServer
- .NET5 WPF進階教程
- .NET桌面程式整合Web網頁開發的多種解決方案Web網頁
- WPF + Winform 解決管理員許可權下無法拖放檔案的問題ORM
- 手把手教會 VS2022 設計 Winform 高DPI相容程式 (net461 net6.0 雙出)ORM
- WPF NET5 Prism8.0的升級指南
- 【譯】32位 .NET Framework 專案的 WinForm 設計器選擇FrameworkORM
- 微軟:正式釋出針對 .NET Core的 Winform 設計器微軟ORM
- 使用quartz.net 完成一個winform版的任務提醒工具quartzORM
- WPF 程式使用 MediatR
- 使用gitlab自帶的ci/cd實現.net core應用程式的部署Gitlab
- 【譯】使用 WebView2 將最好的 Web 帶到 .NET 桌面應用程式中WebView
- .Net5 WPF快速入門系列教程
- .net core 和 WPF 開發升訊威線上客服系統:把 .Net Framework 打包進安裝程式Framework
- .NET Core部署到linux(CentOS)最全解決方案,高階篇(Docker+Nginx 或 Jexus)LinuxCentOSDockerNginx
- 原來.NET寫的Linux桌面這麼好看?Linux
- WPF打包獨立執行的程式
- .net6的IIS釋出部署
- 開源自己編寫的半人工標註平臺PaddleOCRLabel(.NET Winform版本)ORM
- 【WPF】CAD工程圖紙轉WPF可直接使用的xaml程式碼技巧
- 在.NET Core 3.0中的WPF中使用IOC圖文教程