編寫時間:2019-07-03
更新時間:2019-07-04 12:29css做者:鬼小妞html
目的:本文旨在幫助一些剛項目開發的人員瞭解 什麼是項目打包,什麼是軟件封包,如何進行軟件封包前端
備註: 本文
整理及編寫
了與項目項目打包和軟件封包相關的一些知識,僅供參考,描述不當的地方,請評論指正web狀態:
整理更新中
2019-7-4windows
先說說我爲何要寫這篇文章,個人項目負責人發了一個安裝包給我,這個安裝包在安裝的時候能夠選安裝路徑,我就奇怪了,爲啥子老子build出來的安裝包就直接安裝了,連個路徑都選不了,哎,菜雞就是菜雞,這個知識點都不知道,有什麼辦法哦。 哈哈哈,我不懂,不是還有度娘嘛,立刻百度唄,然而,我搜不到對我這個菜雞來講,能夠看得懂的。是我太「單純」了,老鐵,麼得事,本身整理唄! 預計整理須要一週哎,下週就得投入真正的項目開發咯瀏覽器
在進入主題以前,你須要瞭解,綠色軟件與非綠色軟件session
綠色軟件,指一類小型軟件,多數爲免費軟件,最大特色是軟件無需安裝即可使用,可存放於閃存中,移除後也不會將任何紀錄(註冊表消息等)留在本機計算機上。app
非綠色軟件,指的是在安裝軟件的時候,它須要寫入註冊表,而後選定一個安裝途徑文件夾去安裝所須要的文件。electron
綠色軟件不會對註冊表進行任何的操做,而非綠色軟件會在安裝的過程當中對註冊表進行操做。模塊化
綠色軟件自己就是不須要安裝和卸載的軟件,因此不會對除自己所在目錄外的任何文件產生任何影響,而非綠色軟件須要安裝,因此就會產生影響。
綠色軟件不須要安裝,隨意拷貝、複製就能夠用(重裝操做系統也能夠),而非綠色軟件須要安裝,因此並無那麼方便快捷。
若是說狹義的打包, 那就是把全部的 js 文件, css 文件都分別壓縮合併爲一個All in One 的 .js 和 .css 文件, 這樣瀏覽器就能夠經過少許的 HTTP 請求獲取到所須要的前端資源了, 節省流量, 加快頁面加載速度.
至於廣義的打包, 個人理解應該是上線發佈時的預處理工做吧, 主要有:
TypeScript, LESS 等的預處理
資源的合併壓縮, JavaScript可能還會須要模塊化, CSS文件可能也須要合併、添加兼容性前綴(-webkit-, -moz-)等
js 的合併.
至於打包工具, 流行的有 Gulp, Grunt, Webpack等工具 好比說,在electron一個簡單的項目,項目打包後(打包路徑是build),在build文件目錄下它是這個樣子:
在這個打包好的文件夾裏,能夠直接運行這個項目,(就是說在生產環境下運行)有兩個辦法:
cms Setup 4.0.0.exe
會自動安裝好並運行win-ia32-unpacked
】文件夾,找到exe程序,並運行。你會發現,好比,你想要自定義安裝路徑,想要出現用戶贊成協議等,以上兩個方式都不知足你的需求。那怎麼辦哦,這些項目打包工具就是隻能這樣。you get!軟件封包就產生了
須要將軟件的多個文件或者是綠色軟件、非安裝類軟件,打包成一個可執行的exe安裝程序,方便進行安裝。 好比,上面提到的,項目打包以後,有一個文件夾【win-ia32-unpacked】,
而軟件打包是在這個的基礎之上,打包一個可執行的exe安裝程序,它只有一個文件,和咱們普通下載軟件同樣只需下載exe就能夠了,就好比上文提到的項目打包以後的文件裏的這個【cms Setup 4.0.0.exe】文件。 通常封包後的exe擴展程序是屬於非綠色軟件
經常使用的軟件封包形式主要有如下幾個形式
使用Inno技術製成的程序安裝包可使用/SILENT 和 /VERYSILENT參數進行靜默安裝 我不知道這兩個參數有什麼分別,由於它們實現的功能看上去是同樣的 setup.exe /VERYSILENT 你會看到一個對話框,詢問你是否打算繼續安裝: 咱們能夠經過使用一個參數跳過這個對話框: setup.exe /VERYSILENT /SP- 有些利用Inno 技術作做的安裝包會在程序安裝完畢後自動運行所安裝的程序,例如ISOBuster 不過咱們可使用一個叫作Taskkill的系統自帶工具殺死相關的進程。 如下是一個能夠用於批處理文件安裝由Inno打包的軟件的命令的示例: ECHO. ECHO 正在安裝ISOBuster 1.4 ECHO 請稍候... start /wait %systemdrive%\install\Applications\ISOBuster\IsoBuster14.exe /VERYSILENT /SP- ECHO. ECHO Killing ISOBuster.exe process taskkill.exe /F /IM isobuster.exe ECHO. 我怎麼知道哪一個安裝程序是用Inno 技術打包的? 這種軟件安裝時第一個界面通常以下圖所示 在窗口標題欄左側的圖標上點擊鼠標左鍵 而後再探出菜單上點擊「About Setup」也能夠看見安裝類型
要使用靜默安裝的方式安裝用InstallShield技術打包的程序 你首先要在現有的操做系統中建立一個setup.iss文件。
使用NSIS 打包的安裝文件能夠用 /S參數進行自動安裝(「S」是大小寫敏感的): Setup.exe /S 你也能夠用 /D參數選擇將要安裝的目標分區和文件夾: Setup.exe /S /D=E:\Software\CDex 像Winamp 和CDex這類的軟件都會在安裝結束後顯示一個確認屏幕(CDex) 或者一個設置文件關聯方式的結束安裝屏幕(Winamp) 我還不知道怎樣跳過這一步,可是這個屏幕對批處理文件的繼續執行不會有任何影響 我怎麼知道哪一個程序是使用NSIS技術打包的? 不少用NSIS打包的程序在安裝的時候都有相似這樣的窗口,例如Winamp 和CDex:
微軟老大的封包形式! 若是某個軟件是用Windows Installer打包的,那你就應該能在文件夾中看到*.msi文件。 這是最典型的特徵 這些文件一般可使用 /QB和 /QN參數進行自動安裝。 Powertoys使用了 /s /v/qn參數,對於這些軟件,你能夠依次嘗試上面提到的參數 看看哪一個是有效的。 /qb 會在窗口中顯示一個基本的安裝進程 /qn 參數則不會顯示任何窗口,直接在後臺自動安裝 阻止程序安裝完成後自動重啓動: 爲了阻止某些程序安裝成功後自動重啓動(例如Kerio Personal Firewall 4),你能夠在 /qn 或者 /qb參數後使用REBOOT=Suppress標記,例 如: setup.msi "/qn REBOOT=Suppress" 有些安裝程序使用 /s/v/qn參數進行自動安裝,所以阻止它們重啓動應該用: setup.exe /s /v"/qn REBOOT=Suppress"
用WISE技術打包的軟件在安裝的時候能夠選擇使用 /s參數進行自動安裝: Setup.exe /s 更多的其餘參數:
You can run Wise Installation .EXE with command line options to automate many of the tasks you would normally do in the User Inte***ce. The list of options is as follows.您可使用命令行選項運行Wise install .EXE,以自動化您一般在用戶中執行的許多任務 強度* * * ce。選項列表以下。
/c file.wse -- creates executable file from wise script
/r -- opens Wise in SetupCapture window
/u -- runs the upgrade wizard that checks for any upgrades online
/d CompVar=Value -- defines a single compiler variable in Enterprise Edition. Multiple definitions require multiple /d
/d=filename -- uses filename to define compiler variables. Each line in file is CompVar=Value
Example: installbuilder.exe /c /d MYVAR="Test" c:\my\source\files\setup.wse
Wise Installations :
/T -- test mode
/X pathname -- extracts files into pathname
/Z pathname -- extracts files into pathname and reboots
/S -- silent install
/M -- prompts for windows, system, temp directories
/M=filename -- specifies a value file similar to /d above, but for standard variables (See NOTE below).
/M1 -- same as /m plus it prompts before any file that is self-registered
/M2 -- reserved for internal use by Wise during debugger sessions Example: setup.exe /T
Unwise:
/Z -- remove empty directories, including one with unwise itself in it.
/A -- automatic mode, no user choices other than cancel.
/S -- silent mode, automatic mode with no user choices
/R -- rollback mode, selects option to rollback on uninstall
/U -- like automatic mode, but gives all choices other than custom/automatic title window title can be at the end of the command line
Example: unwise.exe /S c:\my\program\directory\install.log NOTE: The values file is a *** text file with variables listed, one per line, in VARIABLE="VALUE" format. If the variable is found in the values file, the specified value is used; otherwise, its value is unchanged. The file containing the variables can be up to 32K.
1.對於微軟的補丁基本上有兩種:
2.Installshield 應用程序,要使用自動安裝的方式安裝用InstallShield技術打包的程序,你首先要建立一個setup.iss文件。
3.對於全部以winrar製做的安裝程序均可以用/S安裝;
4.inno封裝方法的/silent /verysilent /norestart
5.nsis 封裝方法的 /s /D=E:\Software\CDex
6.wsis 封裝方法的/s
大部分軟件,其安裝都具有必定的智能性,換句話說,許多軟件的安裝都能採起全自動或半自動的方式進行。 下面以不一樣的安裝方式進行討論:
若是某個軟件是用Windows Installer打包的,那你就應該能在文件夾中看到*.msi文件。 這是最典型的特徵,這些文件一般可使用 /QB和 /QN參數進行自動安裝。。 /qb 會在窗口中顯示一個基本的安裝進程 /qn 參數則不會顯示任何窗口,直接在後臺自動安裝 爲了阻止某些程序安裝成功後自動重啓動(例如Kerio Personal Firewall 4),你能夠在 /qn 或者 /qb參數後使用REBOOT=Suppress標記,例如: 如安裝虛擬光驅 DaemonTools:msiexec /i dtools.msi /qb REBOOT=SUPPRESS
有兩種狀況,
一種是相似IE增量補丁包的那種安裝文件,要使之靜默安裝,只須要在執行文件後加上 /q:a /r:n 參數便可;
一種是 Windows 經常使用的補丁文件,通常狀況下加上 /U /N /Z 便可實現靜默安裝。 (對於新的系統補丁,也可以使用 /passive /norestart)。這通用大部分狀況,但某些特定的補丁不能用此法進行靜默安裝。
a.要使用靜默安裝的方式安裝用InstallShield技術打包的程序,首先要在現有的操做系統中建立一個setup.iss文件。 在命令行窗口中使用 -R 參數(大小寫敏感)運行安裝程序。
例如:Setup.exe -R
b. 接着會顯示常見的安裝屏幕,而且詢問你一些問題,例如要安裝的目錄等有一點是很重要的,在安裝結束後你不能選擇「馬上重啓動計算機」的選項。若是你選了,在批處理文件中的其餘命令就會由於計算機重啓動而沒法執行。
c. 在安裝程序運行完畢後,打開你的C:\Windows(或者C:\WINNT)目錄,而後找到setup.iss文件,把這個文件和你將要靜默安裝的程序setup.exe保存在同一個目錄中
d. 用如下命令進行靜默安裝:setup.exe -s [-sms]
我怎麼知道哪一個程序是使用InstallShield技術打包的?
大部分這類程序的安裝文件均可以被壓縮軟件解壓縮,安裝文件setup.exe的屬性對話框中應該有「InstallShield (R) Setup Launcher」或者其餘相似的字樣。 最後,若是你在保存安裝文件的文件夾中看到了一個setup.iss文件,那麼毫無疑問這是用InstallShield打包了!
InstallShield with MSI 製做的安裝文件,請使用相似:setup.exe /s /v"/qb" 來安裝
用WISE技術打包的軟件在安裝的時候能夠選擇使用 /s參數進行自動安裝:setup.exe /s
Inno Setup 製做的安裝文件,請使用:setup.exe /sp- /silent /norestart
我怎麼知道哪一個安裝程序是用Inno 技術打包的?
這種軟件安裝時第一個界面通常以下圖所示 在窗口標題欄左側的圖標上點擊鼠標左鍵,而後再探出菜單上點擊「About Setup」能夠看見安裝類型[attach]138[/attach]
使用 NSIS (NullSoft Installation System) 製做的安裝文件,可用 /S (注意大寫)來進行靜默安裝。 示例:setup.exe /S 使用NSIS 打包的安裝文件能夠用 /S參數進行自動安裝(「S」是大小寫敏感的): Setup.exe /S
你也能夠用 /D參數選擇將要安裝的目標分區和文件夾: Setup.exe /S /D=E:\Software\CDex
像Winamp 和CDex這類的軟件都會在安裝結束後顯示一個確認屏幕(CDex)或者一個設置文件關聯方式的結束安裝屏幕(Winamp)
我怎麼知道哪一個程序是使用NSIS技術打包的?
不少用NSIS打包的程序在安裝的時候都有相似這樣的窗口,例如Winamp 和CDex:[attach]139[/attach]
製做的安裝文件,可用 /silent 參數進行靜默安裝。 反正拿到一個安裝程序,你們用各靜默安裝參數試試就知道了 ([/s] [/S] [/silent [/noreboot]] [/verysilent [/sp-] [/norestart]] [/q] [/qn] [/qb] [REBOOT=SUPPRESS] [/s /v/qn] [/q:a /r:n] [/u /n /z] [/quiet] [/SilentInstallNoSponsor] [/SilentInstall] [/s /qn] [/s /qd] [-s] [-q] 等)。