2012-04-18 101 views
0

使用DTF我可以使用下面的代碼獲得已安裝的產品。如何使用WIX DTF更新已安裝的產品信息?

 var product = (from p in ProductInstallation.AllProducts 
         where p.Publisher == CompanyName && p.ProductName == ProductName 
         select p).FirstOrDefault(); 

但是我想更新的屬性沒有setter。像版本一樣。 DTF中的其他所有內容似乎都是針對MSI而非已安裝的產品

回答

2

它沒有setter,因爲那樣做沒有意義如果我有FOO.MSI 1.0並安裝它,它會在MSI中註冊。那麼爲什麼我應該能夠告訴MSI它真的是1.1?我必須得到FOO.MSI 1.1並執行升級才能做到這一點。

+0

問題是文件被修補了一個單獨的服務,但Windows安裝程序檢測到更改並運行修復。我需要一種方式來告訴它什麼更新到 – 2012-04-18 23:48:58

+0

雖然你應該只使用MSP服務(補丁)和MSI,但是從(叛徒)經驗中知道,只要你更新版本的EXE/DLL文件就可以了。不會觸發修復(resilency),如果您手動調用修復,則更高的版本將保留。但是,如果您確實刪除了DLL並進行修復,則會返回舊版本。 – 2012-04-19 00:33:18

+0

沒錯,如果你用相同的版本替換它會發生什麼?它會修復嗎?順便說一下,使用InstallShield完成原始安裝。 – 2012-04-19 00:35:21

相關問題