2016-04-27 25 views
0

我在InstallShield中創建了一個安裝程序。我已經爲客戶提供了這個構建。我有一個CustomAction條件爲「1」,即始終執行。但是現在我想在安裝時跳過這個CustomAction。我無法爲客戶提供新的安裝程序。那麼在安裝時有什麼辦法可以跳過CustomAction?如何在安裝時跳過任何CustomAction?

我試着將參數/v"PrpertyName=Value"傳遞給Setup.exe。但它並沒有幫助我,因爲我的CustomAction具有「1」的條件。那麼是否有其他方式通過命令參數或其他方式跳過CustomAction?

回答

1

只用命令行參數就無法做到這一點。您(或客戶)必須創建一個轉換文件並通過命令行應用它。此轉換可以刪除或更改自定義操作的條件,以便它不執行,或者可以更新它,以便它不會失敗。

可以使用InstallShield或大多數其他MSI編輯工具創建變換,並且可能應該修改自定義操作的條件(要麼爲0,要麼引用一個屬性;對於本文的其餘部分,我將假設爲0 )。

一旦您創建了轉換,您可以通過將它放在setup.exe旁邊並傳遞引用轉換的TRANSFORMS property的值(或者在極少數情況下將/ t參數傳遞給您執行廣告安裝):

mysetup.exe /v"TRANSFORMS=SkipAction.mst" 

注意,如果的.mst沒有簽名,它會導致如果將.msi正確進行了簽名不可信的UAC提示偶數。

+0

謝謝邁克爾。我想問一下關於InstallShield的一些疑問。我如何與你溝通? –