2012-02-09 121 views
0

問題:
我有一個用戶需求中,如果前提條件的應用是用戶機器上沒有一個文件將無法安裝。但是在安裝我的產品後,當用戶安裝該先決條件應用程序時,他會運行我的安裝程序並選擇修復以安裝缺少的文件及其相關的註冊表項。維克斯:安裝組件,同時修復或重新安裝

我的期望:
我知道修復將只修復將已安裝的第一個安裝的那些文件。但是,這沒有任何解決方法?

任何在這裏和其他與AddLocal?

非常感謝你。

回答

0

你的問題很混亂。

你有一個包含2個程序的應用程序。當我們運行安裝程序時,它只安裝程序1並且不安裝程序2,因爲prerequsite沒有安裝。

現在,當u安裝必備現在ü希望當u再次運行安裝程序,其中未設置該程序2應安裝。

在安裝程序上。有3個選項。添加刪除功能,修復和卸載。您可以添加刪除功能,並可以選擇程序2並進行安裝。

你需要讓條件上的安裝程序,如果沒有預裝-REQ程序2無法安裝。所以當你嘗試第一次安裝,並選擇程序2或完全安裝它會告訴你,你不能安裝這個,因爲pre-req不在那裏。它只會安裝程序1,並在運行安裝程序時會顯示添加刪除功能選項。

我希望你能得到答案。

1

您可以使用組件標籤內的條件。例如:

<Component Id="RepairOrReinstallOnly" Guid="YourGUID" Transitive="yes"> 
    <Condition> 
     INSTALLED AND (NOT UPGRADINGPRODUCTCODE) 
    </Condition> 
    ... 
</Component> 

這種方式組件應該只安裝在修理,修改和重新安裝。

但它不會在第一次安裝安裝(安裝是假的),或者如果你做了重大升級(UPGRADINGPRODUCTCODE是真的)。

0

我不覺得,因爲當Windows安裝程序緩存您的.msi,.cab文件被刪除,這是可行的。這意味着除非用戶保留原始安裝程序,否則最初跳過的源文件將不可用。做出這樣的假設有點過分。

我的建議是要麼總是安裝文件,或嘗試讓應用程序管理可選的文件(S)的部署。我發現,任何時候你嘗試做非標準化的東西在安裝程序中,它變得更加複雜而難以管理,而且更難以防止匍匐微妙的問題。