2011-03-14 69 views
1

我在發現InstallShield Express(2011版本17)。很好,可以配置一些自定義操作。也就是說,我可以啓動JScript腳本(似乎是一個Javascript方言,以* .js結尾的文件)。InstallShieldExpress啓動JScript自定義操作:是否可以訪問變量[INSTALLDIR]

我的腳本做一些註冊表編輯器的東西,推出MSIEXEC安裝MSXML,並執行安裝安全軟件狗驅動程序...總體是相當不錯的一個exe ...但我喂WScript.Shell命令硬編碼路徑我從來不喜歡那個

,以便更聰明,我想知道,如果安裝速成性質[安裝]可能會通過某種InstallShieldObject內的*訪問.js文件

這樣我可以寫類似:

function doInstall() 
{ 
    installDir = InstallShieldObject.INSTALLDIR // <= this is what I'd like to do 
    var comandUpdateRegistry = "regedit /s" + installDir + "registryScript.reg" 

    oShell = WScript.CreateObject("WScript.Shell"); 
    oShell.Run(updateRegistryScriptCommand); 

    return true; 
} 

回答

1

你知道你在做什麼違反了幾個最佳實踐嗎?如果你這樣做,或者你不在乎,那麼看一下Session對象。

Session Object Session.Property(「MYPROP」)Get;組;

如果您不知道和/或您是否在意,那麼意識到1)腳本自定義操作是脆弱的,並且2)MSI是聲明式的,不是必要的。您不應該使用自定義操作重新發明輪子,可以使用Registry table本機完成。

在InstallShield的上下文中,您可以右鍵單擊將Reg文件導入到註冊表中,MSI將爲您處理其餘的問題。

+0

這是我第一次使用InstallShield進行打包。我關心良好的做法。 Thanx突出他們給我。 Thanx指向我的reg文件的導入。我將再次嘗試使用針對外部子MSI的命令的自定義操作啓動「exe」。 – 2011-03-14 13:43:18

+1

如果不違反最佳做法,MSI不能調用MSI。由於您使用的是InstallShield,因此您需要查看「安裝先決條件」。 – 2011-03-14 16:20:30

+0

thx,我添加了條件「在Windows子文件夾中查找msiexec」作爲要求。 – 2011-03-14 17:05:56

相關問題