使用InstallShield2015 Limited Edition的免費安裝跟進行VS應用程式打包
專案打包的基本配置:
一、安裝InstallShield Limited Edition for Visual Studio,一般到要到官網註冊一個賬號。然後其會發郵件給你,其中包括軟體的安裝包跟序列碼。這兩個是一一對應的,如果是使用了別人的安裝包,則這個序列碼是無法啟用installShield的。
二、這兩天做專案,需要對已經做好的軟體進行打包,網上搜了一下,發現visual studio 2013具有自帶的打包軟體功能,是visual studio自帶的一款外掛InstallShield 2013 Limited Edition for Visual Studio,通過這個外掛可以對專案進行釋出。所以在這裡寫一個打包軟體的圖文教程吧。
首先,visual studio 2013預設情況下應該是沒有安裝InstallShield(也可能初始安裝VS的時候我沒有安裝),所以需要去註冊下載InstallShield,InstallShield的官網是:
http://learn.flexerasoftware.com/content/IS-EVAL-InstallShield-Limited-Edition-Visual-Studio
現在的最新版本應該是InstallShield 2015,按照網站說明註冊安裝即可。
也可以這樣安裝:
1、開啟VS2013,檔案-新建-專案-已安裝-模板-其他專案型別-安裝和部署-啟用InstallShield Limited Edition。
2、根據提示操作,點選步驟2的“轉到下載網站”。
3、填寫相關資訊後,點選Download下載InstallShield,同時註冊郵箱會收到一封郵件,裡面有 序列號 和下載連結。
4、退出VS,使用管理員許可權重新開啟VS,在檔案-新建-專案-已安裝-模板-其他專案型別-安裝和部署中則可以看到InstallShield Limited Edition Project,點選確定,會彈出註冊對話方塊,輸入註冊郵箱中收到的 序列號 即可完成註冊。
下面介紹一下打包釋出軟體的教程:
一、安裝好InstallShield外掛後,開啟VS 2013;
滑鼠點選:檔案-》新建-》專案-》已安裝-》其他專案型別-》安裝和部署,看到以下圖片:
點選第一個選項(新安裝的InstallShield外掛),設定好名字(這裡是TestInstallShield),點選確定:
Project Assistant介面如下:
二、打包過程按照Project Assistant的引導介面從左往右操作就好了:
(一)Application Information:
Application Information 中填寫公司名稱、產品名稱、版本號、網址的資訊。
Application Information 左側視窗點選 General Information:
(1)General -> Setup Language:設定安裝語言
(2)General -> INSTALLDIR:設定安裝路徑
(3)General -> Fast Install:根據需要配置以便加速安裝速度
a、No system restore point is saved for this installation:沒有為這個程式儲存系統恢復點
b、Perform only File Costing and skip checking other costs:僅執行檔案花費和跳過檢查其他成本
c、Reduce the frequency of progress messages:降低進度條資訊的頻率
(4)Summary Information Stream -> Require Administrative Privileges:設定管理員許可權
將該項設為“Yes”。這樣設定之後,使用者就可以有管理員的許可權去安裝該安裝檔案了,避免使用者
在安裝的時候出現許可權不夠的問題。
(5)Add or Remove Programs -> Disable Change Button, Disable Remove Button, Disabl
e Repair Button,這三個至少要有一個選為“NO”,全部設為“YES”的話,則在控制面板中,對應的軟
件沒有“更改/刪除”的按鈕可以點選,即在這裡就解除安裝不了軟體了。
(二)Installation Requirements:選擇程式執行的作業系統及需要的軟體
可選的軟體有Adobe Reader、.NET Framework、IE、Office等
(三)Application Files:新增要打包的檔案
Destination Computer:右鍵 Show Predefined Folder 可選擇需要的資料夾,例如Font資料夾,將字型檔案加入該檔案
夾,安裝時會自動安裝字型。
新增完檔案後,全選檔案,右擊,選中“Always Overwrite”。否則有時會出現重新安裝後,有些檔案沒有被覆蓋。
(InstallShield Limited edition沒有這項許可權)
新增完檔案後,還需要新增C:\Windows\System32\msiexec.exe,用於新增解除安裝程式的快捷方式。
(四)Application Shortcuts:建立桌面和開始選單的快捷方式
點選左側的Shortcuts,可配置快捷方式的屬性資訊。
解除安裝程式的快捷方式設定引數以實現解除安裝功能:Behavior -> Argument 設定為“/x {Product Code}”
(五)Application Registry:添加註冊表
(六)Installation Interview:配置安裝介面
Do you want to display a License Agreement Dialog:
配置License介面
Do you want to prompt users to enter their Company Name and User Name:
配置是否展示輸入公司名稱和使用者名稱稱的介面
Do you want your uses to be able to modify the installation location:
配置使用者是否可以修改安裝路徑(這個一般是要勾選的,否則無法更改安裝路徑)
Do you want users to be able to selectively install only certain parts:
配置使用者是否可以選擇安裝的模組
Do you want to give users the option to launch your application when the installation:
配置使用者是否可以在安裝結束後選擇啟動應用程式
點選左側的 Dialogs 可詳細配置安裝介面是否顯示及具體內容。
(七)將需要的其他工具一起打包到安裝程式中:
解決方案中 Specify Application Data -> Redistributables 可選擇要打包的程式
這裡要打包的程式大部分是VC和Windows自帶的程式:
解決方案中 Specify Application Data -> Files 可選擇要打包的檔案,可以把需要的打包的
檔案放進去
(八)設定安裝程式的生成路徑及方式:(這種方式也是把檔案的執行環境也自動打包到一個安裝包裡)
解決方案中 Prepare for Release -> Releases
CD-ROM:可生成 msi、exe 安裝包。
若Build -> Compression的值為UnCompressed,則完整的安裝程式為program files資料夾+msi檔案。
若Build -> Compression的值為Compressed,則完整的安裝程式為cab檔案+msi檔案。
SingleImage:只能生成 exe 安裝包,也可配置Build -> Compression。(一般是選這個模式生產exe安裝包)
CD-ROM 或 SingleImage 中選擇 Setup.exe -> InstallShield Prerequisites Location,設定為 Extract
From Setup.exe
安裝程式的生成路徑為:\Express\CD_ROM\DiskImages\DISK1
或 \Express\SingleImage\DiskImages\DISK1
可在VS上方的工具欄中選擇生成方式。
主要的注意點:
(九)這裡SingeImage只生成一個EXE,我們的軟體就選擇這種方式(比較方便)。
釋出時,直接拷貝EXE檔案就可以了。
(十)生成的快捷方式定位到安裝目錄:
只是通過上面的生成快捷方法生成的應用程式時無法定位到檔案安裝目錄,但是可以通過其開啟應用程式。上面生成的logo右上角會出現兩個箭頭。如下面所示:
證明這個快捷方法不太對,這個時屬於打包軟體自己配置的。下面時生成正確的方法:
點選下圖位置:
其會列出生成的快捷方式的生成位置,其如下:
接著在對應的快捷圖右鍵選擇“New Shortcut”來生成可以定位到安裝目錄的快捷圖。這個新的快捷幹舊的一樣的名稱即可。對應的為:
既可完成。安裝後桌面只會出現一個會計方法。
(十一)生成的應用程式設定其工作目錄:
如果沒有設定這個工作目錄,則應用程式的的一些保持到本地工作目錄下的檔案則會儲存到桌面上。其設定位置為Working Directory,如下:
(十二)設定保持資料到C盤的AppData目錄下:
如果打包的應用程式不把儲存跟讀取資料儲存到C盤的資料資料夾下,則當應用程式安裝到C盤的【Program Files(x86)】檔案下,及預設安裝路徑下時則會報錯,報無訪問許可權。
一般常規的打包方法也是要把資料檔案跟執行檔案分別設定到不同目錄下。
其設定位置是【AppDataFolder】目錄下,其指的是在C#的資料檔案目錄下要放的資料。其目錄一般是:
【C:\Users\yangdeshi\AppData\Roaming】系統預設目錄下放置【data】資料夾。所以在C#介面開發的時候就需要把檔案路徑也設定到這個目錄下。其中C#獲取這個路徑的程式碼是:
public static string appdata = System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
此時打包好的exe就不會出現無法訪問的錯誤了。
新建打包專案後,解決方案資源管理器中的結構如下:
Project Assistant介面如下:
在Project Assistant中按照步驟建立打包專案:
1、Application Information 中填寫公司名稱、產品名稱、版本號、網址的資訊。
Application Information 左側視窗點選 General Information 中設定其他資訊,主要配置如下:
(1)General -> Setup Language:設定安裝語言
(2)General -> INSTALLDIR:設定安裝路徑
(3)General ->Fast Install:根據需要配置以便加速安裝速度
a、No system restore point is saved for this installation:沒有為這個程式儲存系統恢復點
b、Perform only File Costing and skip checking other costs:僅執行檔案花費和跳過檢查其他成本
c、Reduce the frequency of progress messages:降低進度條資訊的頻率
(4)Summary Information Stream -> Require Administrative Privileges:設定管理員許可權
將該項設為“Yes”。這樣設定之後,使用者就可以有管理員的許可權去安裝該安裝檔案了,避免使用者在安裝的時候出現許可權不夠的問題。
(5)Add or Remove Programs -> Disable Change Button, Disable Remove Button, Disable Repair Button,這三個至少要有一個選為“NO”,全部設為“YES”的話,則在控制面板中,對應的軟體沒有“更改/刪除”的按鈕可以點選,即在這裡就解除安裝不了軟體了。
2、Installation Requirements:選擇程式執行的作業系統及需要的軟體
可選的軟體有Adobe Reader、.NET Framework、IE、Office等
3、Installation Architecture:可配置全部安裝,或是部分安裝
4、Application Files:新增要打包的檔案
Destination Computer:右鍵 Show Predefined Folder 可選擇需要的資料夾,例如Font資料夾,將字型檔案加入該資料夾,安裝時會自動安裝字型。
新增完檔案後,全選檔案,右擊,選中“Always Overwrite”。否則有時會出現重新安裝後,有些檔案沒有被覆蓋。(InstallShield Limited edition沒有這項許可權)
新增完檔案後,還需要新增C:\Windows\System32\msiexec.exe,用於新增解除安裝程式的快捷方式。
5、Application Shortcuts:建立桌面和開始選單的快捷方式
點選左側的Shortcuts,可配置快捷方式的屬性資訊。
解除安裝程式的快捷方式設定引數以實現解除安裝功能:Behavior -> Argument 設定為“/x {Product Code}”
6、Application Registry:添加註冊表
7、Installation Interview:配置安裝介面
Do you want to display a License Agreement Dialog:配置License介面
Do you want to prompt users to enter their Company Name and User Name:配置是否展示輸入公司名稱和使用者名稱稱的介面
Do you want your uses to be able to modify the installation location:配置使用者是否可以修改安裝路徑
Do you want users to be able to selectively install only certain parts:配置使用者是否可以選擇安裝的模組
Do you want to give users the option to launch your application when the installation:配置使用者是否可以在安裝結束後選擇啟動應用程式
點選左側的 Dialogs 可詳細配置安裝介面是否顯示及具體內容。
8、將需要的其他工具一起打包到安裝程式中:解決方案中 Specify Application Data -> Redistributables 可選擇要打包的程式
9、設定安裝程式的生成路徑及方式:解決方案中 Prepare for Release -> Releases
CD-ROM:可生成 msi、exe 安裝包。
若Build -> Compression的值為UnCompressed,則完整的安裝程式為program files資料夾+msi檔案。
若Build -> Compression的值為Compressed,則完整的安裝程式為cab檔案+msi檔案。
SingleImage:只能生成 exe 安裝包,也可配置Build -> Compression。
CD-ROM 或 SingleImage 中選擇 Setup.exe -> InstallShield Prerequisites Location,設定為 Extract From Setup.exe
安裝程式的生成路徑為:\Express\CD_ROM\DiskImages\DISK1 或\Express\SingleImage\DiskImages\DISK1
可在VS上方的工具欄中選擇生成方式。
打包過程中碰到的問題:
1、程式中有一個專案新增上後,打包就會失敗,後檢查發現是一個類中有一下未使用的程式碼,遮蔽後就解決了。原因未知。
[System.Runtime.InteropServices.DllImport("user32.dll ")]
static extern IntPtr GetWindowDC(IntPtr hWnd);
[System.Runtime.InteropServices.DllImport("user32.dll ")]
static extern int ReleaseDC(IntPtr hWnd, IntPtr hDC);
2、使用快捷方式解除安裝軟體時,提示“安裝程式必須更新在系統執行時無法更新的檔案或服務。如果選擇繼續,將需要重新啟動以安裝程式。”,點選“確定”後,機器未重啟,軟體成功解除安裝。原因未知。
3、打包時要關閉打包程式下的DiskImages資料夾,否則會導致生成失敗。