VS2019打包WPF安裝程序最新教程(圖文詳解)
VS2019打包WPF安裝程序最新教程,使用Visual Studio 2019開發(fā)的WPF程序如果想要打包為安裝程序,除了在VS2019找到WPF項(xiàng)目類庫(kù)直接右鍵發(fā)布之外,更常用的還是將其打包為exe或者msi的安裝程序;打包成安裝程序的話,客戶得到安裝程序直接安裝即可使用,即使在離線環(huán)境情況下,安裝好就可以使用了。
一些傳統(tǒng)行業(yè)發(fā)布程序時(shí),比較常用這種方法,如醫(yī)療,教育等。
演示程序打包一覽
在本教程中,我完整的打包了一個(gè)簡(jiǎn)單的WPF程序,最終安裝好了以后,在桌面有一個(gè)我的程序的快捷方式圖標(biāo),點(diǎn)擊這個(gè)圖標(biāo)即可打開應(yīng)用程序。
WPF安裝程序桌面圖標(biāo)
程序運(yùn)行后的效果如下所示:
VS2019打包WPF安裝程序運(yùn)行效果VS2019打包WPF安裝程序步驟
使用VS2019打包WPF安裝程序有很多種方法,本篇教程基于VS擴(kuò)展插件Microsoft Visual Studio Installer Projects工具來打包,實(shí)際上此工具,在VS2010時(shí)自帶有,只是后面版本的Visual Studio取消了此插件,現(xiàn)在需要單獨(dú)安裝。
安裝打包Installer插件
安裝Microsoft Visual Studio Installer Projects插件有兩種方式。一是下載插件單獨(dú)安裝,二是在VS里面在線安裝。
Microsoft Visual Studio Installer Projects下載地址:
官方下載地址:點(diǎn)擊下載
下載下來后,你會(huì)在你的保存目錄看到此文件的圖標(biāo)是這樣的,直接雙擊安裝就可以了,如果打開了Visual Studio,先將VS關(guān)閉后再安裝即可。
安裝插件
如果你不能從官網(wǎng)下載到,可以從本站直接下載即可。離線下載安裝的方式適用于斷網(wǎng)環(huán)境開發(fā)。
VS在線安裝Microsoft Visual Studio Installer Projects
Microsoft Visual Studio Installer Projects插件也可以在線直接安裝,步驟為:點(diǎn)擊菜單欄【擴(kuò)展(X)】,然后在彈出來的一個(gè)窗體里面,在右側(cè)搜索框里面搜索“Microsoft Visual Studio Installer Projects”,一般第1個(gè)就是它了,然后點(diǎn)擊Download(下載),然后安裝就可以了。
VS
在線安裝Microsoft Visual Studio Installer Projects
點(diǎn)擊Download后如下:
下載插件
下載完畢后,你需要把VS關(guān)閉掉,它會(huì)自動(dòng)的安裝。
自動(dòng)安裝插件
安裝好了后,啟動(dòng)VS即可。
創(chuàng)建安裝項(xiàng)目
重新打開Visual Studio,打開一個(gè)你現(xiàn)有的包含WPF項(xiàng)目的解決方案即可,然后創(chuàng)建安裝項(xiàng)目。在解決方案上右鍵 –> 【新建項(xiàng)目】–> 【Setup Project】,添加Setup Project項(xiàng)目時(shí),VS2019可以搜索項(xiàng)目模板,如下圖所示。
創(chuàng)建安裝項(xiàng)目
創(chuàng)建好了后,主界面變成如下圖所示:
安裝項(xiàng)目主界面
左邊窗口三個(gè)文件夾圖片說明如下:
Application Folder:應(yīng)用程序包含的文件設(shè)置,指最終在客戶電腦上的安裝根目錄。如下圖所示:
應(yīng)用程序目錄子目錄
User's Desktop:用戶桌面快捷方式設(shè)置,用戶桌面,一般放個(gè)快捷圖標(biāo)。
User's Programs Menu:用戶啟動(dòng)菜單的快捷方式設(shè)置,一般也是放快捷圖標(biāo)。
Application Folder是安裝程序的根目錄,你編寫的程序生成的dll,安裝后就存放在這個(gè)目錄。
添加項(xiàng)目輸出
安裝項(xiàng)目建好了后,需要要往里面添加項(xiàng)目輸出,操作方式為:右鍵Application Folder —>Add—>項(xiàng)目輸出。
該操作也可以直接在安裝程序項(xiàng)目類庫(kù)上面通過右鍵操作來添加項(xiàng)目輸出,如下圖所示:
右鍵設(shè)置屬性設(shè)置項(xiàng)目屬性
項(xiàng)目屬性的設(shè)置,是用于最終一個(gè)生成安裝程序的描述信息,這個(gè)描述信息,這個(gè)描述信息主要內(nèi)容有程序的作者,標(biāo)題,公司信息,技術(shù)支持等等。最直觀的方式可以通過2種方式查看。
第一種查看方式:安裝前將鼠標(biāo)放到安裝程序文件上,會(huì)有提示信息,如下圖所示:
屬性提示
第二種查看方式:安裝后在控制面板處,找到安裝程序,即可查看,如下圖所示:
控制面板看到的安裝后程序描述
項(xiàng)目屬性的設(shè)置方式為:(1)左鍵選中項(xiàng)目,(2)點(diǎn)擊解決方案欄屬性,注意,不是右鍵選擇屬性,而是如下圖一樣選擇屬性。
設(shè)置安裝程序?qū)傩?/strong>
當(dāng)你點(diǎn)了屬性后,會(huì)出現(xiàn)如下的窗口。
設(shè)置屬性主窗口
在當(dāng)前的演示程序中,我是按照上圖做的設(shè)置,設(shè)置都很簡(jiǎn)單,不需要做額外的解釋,如果有不明白的,可以加群與我聯(lián)系。
添加快捷方式圖標(biāo)
程序安裝好,我們當(dāng)然希望用戶能夠快速的打開我們的應(yīng)用程序,你就需要為你的安裝程序制作快捷方式,方法很簡(jiǎn)單。
方法:(1)中間窗口右鍵,創(chuàng)建新的快捷方式
創(chuàng)建新的快捷方式
(2)彈窗里面選擇Application Folder,雙擊進(jìn)入另外一個(gè)界面
創(chuàng)建新的快捷方式第2步
雙擊后,進(jìn)入下圖這個(gè)界面,選擇主輸出即可。
創(chuàng)建新的快捷方式第3步
完了后點(diǎn)擊OK按鈕,就進(jìn)入下圖這個(gè)界面。然后將快捷方式名稱改為你應(yīng)用程序的名稱。
改快捷方式圖標(biāo)名稱
改名后的效果:
改名后的效果
最后一步,也是最重要一步,在上圖中選中改名后的圖標(biāo),將其拖到左側(cè)窗口User's Desktop目錄即可。
拖動(dòng)快捷方式圖標(biāo)到對(duì)應(yīng)位置
開始菜單圖標(biāo)(User's Programs Menu)設(shè)置方式同上面的步驟是一樣的,這里就不再重復(fù)了。
依賴文件
打包正式項(xiàng)目的時(shí)候,界面程序可能依賴于很多其它類庫(kù),或者第3方的dll文件,我們需要把它們一起打包,并且這些第3方程序或者dll需要同主程序在同一個(gè)安裝路徑下,那么在打包時(shí),也就需要額外的把這些文件也打包進(jìn)來。
所有的操作都可以在中間窗口通過右鍵添加文件,程序集來實(shí)現(xiàn),如下圖所示
添加依賴文件添加注冊(cè)表項(xiàng)目
制作的安裝包如果要添加注冊(cè)表項(xiàng)目,可以通過選中安裝程序項(xiàng)目,然后右鍵,在彈出的菜單里面找到【View】,即可以添加注冊(cè)表項(xiàng)目,按照提示一步一步操作即可。
另外有些打包的程序,需要在安裝前或者安裝后做一些額外的操作,都可以通過自定義操作來實(shí)現(xiàn),如主程序安裝好了以后,還得安裝一個(gè)windows服務(wù)程序,再安裝另外一個(gè)自動(dòng)升級(jí)程序,都可以通過這里來實(shí)現(xiàn)。
添加注冊(cè)表項(xiàng)目
以上的基本操作熟悉后,相信對(duì)于簡(jiǎn)單的桌面程序打包應(yīng)該沒有什么問題了。
另外需要注意的是,對(duì)外打包,需要更改為Release模式
打包依賴框架
最后再說一下關(guān)于 .net 環(huán)境的問題,如果你需要在打包時(shí),將相應(yīng)版本的.Net Framework一起打包到安裝程序里面也是可以的,只是要注意,有可能你的打包機(jī)器上并沒有安裝相應(yīng)的.net framework文件,則需要到官方或者網(wǎng)上下載對(duì)應(yīng)版本的文件,例如這個(gè)演示程序,我設(shè)定的依賴框架是 4.5.2版本的,那么需要將NDP452-KB2901907-x86-x64-AllOS-CHS.exe(.net framework 4.5.2安裝文件)放到指定目錄才能正常的生成打包文件。
需要將.net 的離線安裝文件放到以下目錄,其它版本則注意下路徑即可,一般C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages
目錄下面有不同版本的以DotNetFX開頭的目錄,如下圖所示:
依賴框架
保存目錄
依賴框架保存目錄
將相應(yīng)的版本的.net framework框架文件放到對(duì)應(yīng)的目錄即可,我這個(gè)演示程序是放到下面這個(gè)目錄的。
C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\DotNetFX452\zh-Hans
具體打包步驟為:右鍵安裝項(xiàng)目,選擇屬性,彈出窗口點(diǎn)擊Prerequisites…按鈕。再在彈出的窗口選擇你應(yīng)用程序需要的框架版本即可。可以選擇多個(gè)。
Prerequisites
選擇需要打包的框架版本即可。
框架版本
待安裝程序打包成功后,即可在生成目錄看到該框架的安裝包,如下圖所示:
生成目錄框架文件
好了,以上就是使用VS2019打包WPF安裝程序的完整步驟。
演示程序可以點(diǎn)擊這里下載。
打包后安裝一覽
成生打包文件成功后,就可以雙擊msi或者exe文件進(jìn)行安裝了,安裝效果圖如下:
安裝打包程序
選擇安裝目錄
安裝打包程序
在演示的這個(gè)打包程序里面,比較簡(jiǎn)單,實(shí)際上你可以添加用戶協(xié)議文件,輸入用戶信息后才能安裝,這些都可以在打包時(shí)設(shè)置。
演示程序源碼可以在原文鏈接處下載
本文首發(fā)于:https://jhrs.com/2019/33231.html
總結(jié)
以上所述是小編給大家介紹的VS2019打包WPF安裝程序最新教程,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)我們網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
上一篇:Unity OnGUI實(shí)時(shí)顯示游戲FPS
欄 目:C#教程
下一篇:c#設(shè)計(jì)模式之單例模式的實(shí)現(xiàn)方式
本文標(biāo)題:VS2019打包WPF安裝程序最新教程(圖文詳解)
本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/4617.html
您可能感興趣的文章
- 01-10C#及WPF獲取本機(jī)所有字體和顏色的方法
- 01-10WPF實(shí)現(xiàn)類似360安全衛(wèi)士界面的程序源碼分享
- 01-10WPF實(shí)現(xiàn)時(shí)鐘特效
- 01-10超炫酷的WPF實(shí)現(xiàn)Loading控件效果
- 01-10VS中模仿WPF模板創(chuàng)建最簡(jiǎn)單的WPF程序
- 01-10在WPF中動(dòng)態(tài)加載XAML中的控件實(shí)例代碼
- 01-10WPF的ListView控件自定義布局用法實(shí)例
- 01-10WPF彈出自定義窗口的方法
- 01-10WPF中引入WindowsForms控件的方法
- 01-10WPF自動(dòng)隱藏的消息框的實(shí)例代碼


閱讀排行
- 1C語言 while語句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹的示例代碼(圣誕
- 3利用C語言實(shí)現(xiàn)“百馬百擔(dān)”問題方法
- 4C語言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 01-10C#通過反射獲取當(dāng)前工程中所有窗體并
- 01-10關(guān)于ASP網(wǎng)頁無法打開的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#實(shí)現(xiàn)txt定位指定行完整實(shí)例
- 01-10WinForm實(shí)現(xiàn)仿視頻播放器左下角滾動(dòng)新
- 01-10C#停止線程的方法
- 01-10C#實(shí)現(xiàn)清空回收站的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的
- 01-10C#實(shí)現(xiàn)讀取注冊(cè)表監(jiān)控當(dāng)前操作系統(tǒng)已
隨機(jī)閱讀
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 01-10使用C語言求解撲克牌的順子及n個(gè)骰子
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 01-10C#中split用法實(shí)例總結(jié)
- 04-02jquery與jsp,用jquery
- 01-10delphi制作wav文件的方法
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文