title: 在vs2017和vs2019下發布應用之Windows程序打包-附圖標修改和默認安裝路徑定義全教程
date: 2020-04-25
sidebarDepth: 2
tags:
- windows
- 應用
- vs2019
- 發布
- 打包
- 圖標
- 安裝
- 路徑
- 程序
categories: - 開發
- 微軟技術
- windows
在安裝項目上右鍵,選擇生成或重新生成。會執行打包操作。並會根據你的設置在項目的Debug或Release文件夾下生成一個.msi文件和一個.exe文件。用戶可以使用這個安裝包進行安裝。
安裝依賴組件
首先打開擴展和更新:
聯機查找下面的組件,然后安裝,重啟VS。
創建項目文件
作為應用的主程序。比如這里我就創建一個簡單的項目,只有一個窗口:
創建一個打包項目
先右鍵解決方案,選擇 添加-新建項目
我這里就起名為PackageDemo Installer
。
另外,有些人可能會想這么多安裝類型,怎么選。因為我們這里說Windows程序打包,想要輸出.exe和.msi,大概看一下介紹就能知道,第一個和第四個是合適的。這兩個又該怎么選呢?那其實第四個就是對一些屬性多了些引導,最終的項目結構和第一個是沒有區別的。這里我們就選第一個。
配置
項目信息
配置項目信息,這里打開屬性窗口。注意:不是在項目上右鍵-屬性,而是選中項目后點擊屬性窗口查看:
然后看各種對信息進行配置:
這里對一些屬性做下解釋:
1.重要屬性
1.Author和Manufacturer,分別是作者和制造商的意思,一般都寫公司名。
2.ProductName,軟件名。默認是項目名,影響到安裝界面和安裝目錄。務必改掉。
3.Version,版本號,影響安裝流程,后面會說。
3.TargetPlatform,意思很明顯。表現層面上就是,決定你的安裝目錄是在Program Files還是Program Files (x86),根據項目決定。
4.RemovePreviousVersion,是否移除之前的版本。務必改為True,不然你更新幾次軟件就會發現,電腦里多個版本都在安裝着。
2.不重要的屬性:
1.InstallAllUsers,用戶權限默認值。這個在安裝界面還可以重新設置。
2.ManufacturerUrl,公司官網。
3.SupportUrl、SupportPhone,技術支持的網址和電話。
4.Description,軟件描述。
5.Title,無用。一開始我以為它是安裝界面的標題,但其實並不是,這個值默認和項目名一致,但你修改之后,在哪里也都看不到。所以無用。
當然,現在我們還不能執行打包。還需要添加一些別的內容。
先看一下項目的文件系統
文件系統在項目剛創建的時候會默認打開,其他時候你也可以通過在項目上右鍵-View-文件系統打開。
剛開始就會看到三個入口:
1.Application Folder,這個是你的應用安裝之后,文件所處的目錄。
2.User's Desktop,用戶桌面,我們等下會需要在這里面放置一個快捷方式。
3.User's Programs Menu,用戶的程序菜單。就是按Windows徽標鍵或者是屏幕左下角的Windows徽標,會出現的一些文件夾和快捷方式。
添加文件或文件夾
有時候我們會需要手動添加一些默認文件到安裝目錄里,比如一些默認配置、一些DLL等。接下來演示怎么創建文件夾和添加文件。
比如我重復使用上邊的操作,創建了多級的文件夾,接下來我們可以通過添加文件,往里面添加一些icon圖標,等下可以用作快捷方式的icon。
添加可運行文件及其快捷方式
先創建項目輸出文件(一般都是.exe文件),即快捷方式要指向的文件:
上面的流程也可以重復進行。針對多個項目創建多個項目輸出,那樣的話,就可以用啟動不同的項目了。比如我們知道Git有GUI版本,也有命令行版本。就可以通過這種方式,創建多個輸出文件。
添加完輸出文件之后,我們就可以為這個輸出創建快捷方式了:
比如這里創建出來的就是上面的那個Shortcut ....balabala的東西。這個快捷方式的名字需要修改,不然會直接在界面上顯示這個名字。這里重命名一下即可。
輸出文件(這里的主輸出balabala)是不能改名字的,它是對應的安裝目錄里的輸出文件。比如我這個項目在安裝后,安裝目錄里就會有一個PackageDemo.exe的文件。
也可以多次為這個輸出創建快捷方式。這樣的話,之后可以直接將快捷方式復制到別的入口文件夾里(User's Desktop/User's Programs Menu)。
這里我創建了多個快捷方式,並為它們改了不一樣的名字。接下來,也為它們設置不一樣的icon。
設置icon
先修改快捷方式的icon屬性,這里默認為None,我們需要把它改為之前添加的icon圖標。
在選擇界面打開Browse...,找到之前添加的圖標點擊確認
點擊OK即可為快捷方式應用圖標。其他的快捷方式也是一樣的操作。
生成安裝包並安裝
在安裝項目上右鍵,選擇生成或重新生成。會執行打包操作。並會根據你的設置在項目的Debug或Release文件夾下生成一個.msi文件和一個.exe文件。用戶可以使用這個安裝包進行安裝。
安裝界面如下:
1.那個任何人\只有我
的選項就是我們之前提到過的InstallAllUsers指定值。
2.PackageDemo Installer的問題,可以看出來,這個名字很不合適,那我們能不能改掉這個名字呢?這里就是之前提到過的,項目屬性窗口中的ProductName屬性,將該屬性設置為軟件名稱即可。
再看下安裝之后的效果:
可以看到桌面和程序目錄里各有一個快捷方式,它們的名字和圖標也正是我們在文件系統設置的那樣。
再來看看安裝目錄里的東西:
一些問題
版本號問題
假設,你當前電腦上已經使用一個安裝包安裝了1.0.0版本的軟件:
此時你再次點擊同樣的安裝包:
如果,你對項目做了一些修改后重新打包,卻沒修改版本號:
如果,你對項目做了一些修改后,也增加了版本號:
這樣是可以正常安裝的。並且如果你設置了移除舊版本,也會同時卸載掉舊版本軟件。
生成失敗
有時你執行了生成或重新生成卻發現左下角提示生成失敗
生成失敗
然后打開錯誤列表,如果有錯誤的話,去修改錯誤(警告等是不會導致失敗的,只查看錯誤就可以)。可是,有時候,會出現這種情況:
生成失敗卻沒有提示任何錯誤
明明沒有一個錯誤,卻導致生成失敗了?
這種問題,基本上都是文件系統引用到的文件位置發生了改變。就是說,你在上邊執行的添加文件,其實只是把你電腦上的文件地址保存了起來,之后如果你的文件被刪了或是換了位置,那之前添加的文件引用自然就會失效。這時候去仔細查看一下文件系統。
比如我把幾個圖標文件移動到別的文件夾之后:
這時候,把錯誤的引用刪掉,重新將文件添加進來即可。注意:icon文件修改后,引用icon的快捷方式也需要修改icon路徑。
一個建議
在安裝項目內創建一個文件夾,專門用於放置安裝項目所依賴的文檔、圖標等,避免引用的文件移動后還需要重新設置。
C#使用VS2019打包安裝程序(圖標修改和默認安裝路徑修改)
這次主要是記錄一下我在C#打包時遇到的一些坑。
環境:Vs2019+C#
要打包安裝程序,第一件事就是去擴展——》管理擴展 里面下載installer Projects,
就是這搜索列表里面的第一個。
如果不能安裝,自己就去網上找一下來安裝。
首先這個installer好像版本有些老了,所以只支持.net Framework 4…6.1。所以請把你本身的代碼框架修改成net Framework 4…6.1。如果你一開始使用的其他框架,可以右鍵項目,點擊屬性,彈出下面這個對話框。
在這個目標框架里面選擇.net Framework 4.6.1 就可以了。
如果下拉菜單里面沒有這個選項的話,那你就點擊下拉菜單里的安裝其他框架,下載一個就可以了。還有就是安裝的時候要選擇 developer pack 版本,安裝,否則沒用。
注意如果沒有修改框架為.net Framework 4.6.1版本,它會提示要你安裝,可是不論你怎么安裝,安裝什么版本都沒有,只能修改目標框架,這都是血的教訓啊!
還有就是如果你要修改圖標,可以左鍵你的setup project,在左下角里面有個這種菜單欄
其中的AddRemoveProgramIcon就是設置圖標的。
不過還有一點要注意,你如果直接在網上下載,或者是自己修改后綴名的圖片是沒有辦法使用的。
你需要先在網上下載相應的icon文件,然后先設置下方對話框中的圖標,然后才能去設置AddRemoveProgramIcon中的icon文件。
並且還要注意 將這個icon文件寫入到application Folder,只有這樣才能安裝到別人電腦上也能使用。
還有就是設置這個安裝文件的默認安裝位置。
你需要做的就是左鍵點擊 你的setup project文件——》view——》文件系統
出現這樣一個界面
左鍵點擊第一個文件夾 application Folder,然后找到右下角屬性面板
在DefaultLocation里面設置你想要設置的文件夾路徑。