2013-04-30 196 views
0

我有兩個MSI安裝程序,BasicInstaller.msi和updateInstaller.msi.As顧名思義,updateInstaller.msi是一個更新版本(與增加了一些新的文件)基本installer.I已經在UI安裝基本安裝模式,我已經提到安裝路徑爲「D:/ MSIApp」。MSI更新安裝

我以靜默模式使用msiexec.cmd(這進入bat文件)安裝updateInstaller.msi,該文件覆蓋由BasicInstaller.msi創建的文件和註冊表項。我能夠使用下面的命令

MSIEXEC/I updateInstaller.msi/QN TARGETDIR = d進行安裝:/ MSIApp

現在,我在哪裏basicInstaller的installated路徑尋找邏輯是拾起和updateInstaller安裝在同一地點。總之,我想避免TARGERDIR開關硬編碼。

如果我沒有在指定MSIEXEC TARGETDIR,該updateInstaller安裝在默認的 「C:/ PROGRAMFILES/...」 位置。

能有人幫我瞭解可能的解決方案options.Any幫助。

+0

您需要從項目註冊表中編程式地查找以前的目標目錄到regedit。爲此,您需要爲您的項目創建註冊表,以便在有新更新時首先搜索註冊表,然後進行更新。 – 2013-04-30 06:03:43

+0

http://stackoverflow.com/questions/5029377/reference-directory-install-path-in-registry-value-using-wix – 2013-04-30 06:05:59

回答

1

這通常是通過具有安裝程序完成放下一個InstallPath(或類似名稱)註冊表項。隨後的安裝程序可以讀取條目並將其用作其安裝路徑。

爲一個例子見this page

+0

假設OP瞭解到,重命名MSI需要一個重大的升級,而這正是他有實現。 (與從字面上創建另一個MSI。) – 2013-04-30 14:28:18