2009-02-17 72 views
1

我想要進行新安裝和更新安裝的安裝。 當它用作更新安裝時,我希望無論版本和修改的日期時間都更新一些文件。而且有些文件永遠不會更新。如何通過msi安裝更新特定文件

我試過的: 將「REINSTALLMODE」設置爲「amus」。並將永不更新的文件組件的「永不覆蓋」屬性設置爲「是」。

我得到: 它不起作用。具有「永不覆蓋=是」的組件仍然以某種方式更新。我的問題: 這是正確的嗎? REINSTALLMODE比組件的「Never overwrite」屬性具有更高的優先級? 如何處理這個部分更新問題?

在此先感謝。

回答

1

MSI有特定的File replacement logic

我會考慮做一個Major upgrade。 (手動設置的版本將覆蓋已安裝的內容),我將手動設置任何文件上的文件版本(我手動設置的版本將覆蓋已安裝的文件),並留下文件替換邏輯應該忽略的其他文件。

這是一個關於REINSTALLMODE=amus的文檔,其中提到'a'表示忽略文件版本控制規則並更新所有內容。不是你想要的。另外,我相信REINSTALLMODE通常是用於「修復」操作,無論如何不是安裝/升級。

0

我們做這樣的事情......

  1. 安裝文件,程序文件
  2. 安裝默認的配置對所有用戶應用程序數據
  3. 複製默認配置到每個用戶的應用程序數據,如果每個用戶的配置不找到。

這意味着如果應用更新,默認配置將被重置,但每個用戶的配置不會被重置。所有設置等均在MSI更新期間保存並不被覆蓋。

根據你試圖「不更新」的文件,我懷疑你可以做類似的事情。

+0

很棒的建議!謝謝。但是這個問題是基於一個現有的遺留系統而沒有這樣設計的。還是謝謝你。 – redjackwong 2009-02-19 04:30:41