msi檔案的指令碼安裝

2021-04-26 19:51:06 字數 1766 閱讀 1159

在我們日常的開發環境的搭建中,我們有時候需要安裝很多的msi檔案,如果能把這些msi檔案的安裝自動化,我們就不用乙個乙個的雙擊,然後一步一步地安裝。

介紹一下msi檔案:

說到msi檔案,不得不先說說windows installer,它不只是安裝程式,而是可擴充套件的軟體管理系統。windows installer的用途包括:管理軟體的安裝、管理軟體元件的新增和刪除、監視檔案的復原以及使用回滾技術維護基本的災難恢復。另外,windows installer還支援從多個源位置安裝和執行軟體,而且可以由想要安裝自定義程式的開發人員自定義。要想使用這些功能,就必須通過msi檔案。msi檔案是windows installer的資料報,它實際上是乙個資料庫,包含安裝一種產品所需要的資訊和在很多安裝情形下安裝(和解除安裝)程式所需的指令和資料。msi檔案將程式的組成檔案與功能關聯起來。此外,它還包含有關安裝過程本身的資訊:如安裝序列、目標資料夾路徑、系統依賴項、安裝選項和控制安裝過程的屬性。

msi的優勢

windows installer技術就是合併在一起發揮作用的兩個部分:客戶端安裝程式服務(msiexec.exe) 和microsoft軟體安裝(msi)軟體包檔案。

msiexec.exe 程式是 windows installer 的乙個元件。 當 msiexec.exe 被安裝程式呼叫時,它將用 msi.dll 讀取軟體包檔案 (.msi)、應用轉換檔案 (.mst) 並合併由安裝程式提供的命令列選項。 windows installer 執行所有與安裝有關的任務:包括將檔案複製到硬碟、修改登錄檔、建立桌面快捷方式、必要時顯示提示對話方塊以便使用者輸入安裝首選項。

當雙擊msi檔案的時候,與之關聯的windows installer 的乙個檔案msiexec.exe 被呼叫,它將用msi.dll讀取軟體包檔案(.msi)、應用轉換檔案(.mst)進行進一步處理,然後 windows installer 執行所有與安裝有關的任務:包括將檔案複製到硬碟、修改登錄檔、建立桌面快捷方式,必要時顯示提示對話方塊以便使用者輸入安裝需要的資訊,就這樣,乙個程式安裝到了你的電腦上。

採用msi安裝的優勢在於你可以隨時徹底刪除它們,更改安裝選項,即使安裝中途出現意想不到的錯誤,一樣可以安全地恢復到以前的狀態,正是憑著此強大功能,越來越多的軟體開始使用msi作為發行的方式了。 如果你對msi檔案感興趣,可以用winrar等壓縮軟體開啟,看一下裡面的內容,滿足一下好奇心。

msi格式檔案安裝支援程式:winme和winxp對msi支援得很好,但其他版本的windows就需要安裝乙個外掛程式才能使用msi格式的檔案。

正式借助於msiexec.exe 程式的功能,我們可以在我們的c#**中呼叫這個程式,來實現我們的自動化**,看下邊的例子:

public static int executecommand(string command, int timeout)

此方法接受兩個引數,command引數是我們要執行的命令,這裡要注意的是命令中的雙引號等字元。第二個引數timeout是我們可以容忍的等待時間。

main方法:

static void main(string args)

commands="msiexec /passive /i /"aspajaxextsetup.msi/"";

executecommand(commands,200000);

console.writeline("execute correctely");

}這裡還有乙個方法i***istincurrentdirectory用來監測檔案是否已經在本地。

另外需要注意就是目錄,我這裡的目錄很有可能和你的不同,執行的時候請特別注意。

原創文章,轉引請註明作者。

NSIS安裝msi檔案

安裝包中需要安裝activeperl 5.10.0.1002 mswin32 x86 283697.msi檔案,用exec exewait exeshell直接呼叫都不行,google了一下發現baidu裡其實有講 windows r installer.v 3.01.4000.1823 msiex...

MSI檔案安裝出錯

win10 win8的系統安裝.msi檔案好像很容易報2503,2502的錯誤。主要是因為許可權不足的原因。而安裝msi需要的許可權分好幾種,要全部加上才行 1.使用者許可權不足,需要用管理員登入才可能安裝msi檔案。2.要獲取msi所在資料夾的管理許可權,右鍵資料夾 安全裡面設定 最好還不要中文 ...

INNO SETUP 自動安裝msi檔案

在自己做專案的時候,遇到乙個需要打包的程式。該程式需要用到wingraphviz外掛程式。在專案中,所用到的外掛程式是以msi檔案安裝成功的,因此將程式打包之後,移植到另外一台電腦是,需要自己手動安裝該msi外掛程式。如何實現在安裝程式的時候,自動安裝該外掛程式。在查了很多資料之後,找到了如下的解決...