2012-08-15 175 views
4

誰能告訴我怎樣才能找到運行msi安裝程序的位置。如何找出msi安裝程序運行的位置

比如我在桌面上的文件夾InstallerExample我Sample.msi和手冊文件夾。

我需要這些信息,這樣我可以在文件/ @源使用它,就像下面給出的一個。

<File Id="MyFileId" Name="MyFile" Source="[SourceDir]Manuals" KeyPath="yes" > 

SourceDir應有的價值C:\Users\bla\Desktop\InstallerExample\Manuals

這將是巨大的,如果任何人都可以請幫助我。

回答

2

我有同樣的問題,因爲我想我的自定義操作,開始讀MSI爲地方,所以我需要的路徑的文件。我能夠使用

TARGETDIR 

找到它根據MSDN文檔TARGETDIR是

the root destination directory for the installation 

此外,根據MSDN,SourceDir是

the root directory that contains the source cabinet file or the source file tree of the installation package 

所以SourceDir屬性指向一個真實的目錄:MSI文件所在的目錄。使用msiexec/lvx * installer.log installer.msi進行安裝時,您可以在安裝程序日誌中看到此信息。

但是,由於某些原因,SourceDir在解析TARGETDIR時完全被忽略。 TARGETDIR必須明確設置(例如在命令行上),否則它將解析爲ROOTDRIVE。如果ROOTDRIVE未明確設置,則它是具有最大可用空間的驅動器的根目錄。

+0

TARGETDIR:指向安裝應用程序的位置。當我使用SourceDir時,它指向不同的位置,它不指向具有msi文件的位置(在我的情況下,它沒有C:\ Users \ bla \ Desktop \ InstallerExample \ Manuals)。我基本上想確定安裝MSI的位置。有人可以幫助我這個。 – 2012-08-16 06:31:40

+1

嗨,對不起,延遲。嘗試使用OriginalDatabase屬性,它是用於啓動安裝的安裝數據庫的路徑。儘管我認爲這會讓你在最後得到MSI的完整路徑,但不能在一分鐘內測試它。 – 2012-08-24 14:50:52