2013-01-02 52 views
3

我有一個微星設置我的應用程序。它有一個單獨的組件,只安裝到%PROGRAMFILES%(沒有共享的二進制文件)。簡化的,它看起來像這樣我如何確保MSI安裝了降級庫?

Msi file, Monday build: 
    Program.exe (v1.0.0) 
    ThirdPartyLibrary.dll (v2.0.1) 

現在,如果我發現引起我從V2.0.0到V2.0.1的ThirdPartyLibrary DLL的升級程序中的錯誤,從而恢復了參考V2.0.0,看來我的MSI不會自動替換安裝目錄中的文件?

Msi file, Tuesday build: 
    Program.exe (v1.0.0) 
    ThirdPartyLibrary.dll (v2.0) <- downgraded 

這裏的最佳做法是確保程序文件夾總是包含我的設置中的二進制文件?我應該a)在複製新文件之前擦除安裝目錄中的所有內容?有沒有一個選項(在WIX中)我可以使用,使得msi強制覆蓋所有文件,而不管版本是什麼?

如果我從設置中刪除文件(這將導致錯誤出現在運行時文件),然後安裝後有一個工作程序的唯一途徑,是如果它首先刪除了所有的文件?

+0

但從安裝點的週二構建應該包含V2.0.2是爲V2.0.1修復。因爲它是現在,如果你有安裝MSI週一沒有必要做週二任何事情,你已經擁有的dll的較新版本....我假設你知道的[教程](HTTP://威克斯。 tramontana.co.hu/tutorial/upgrades-and-modularization) – rene

+0

事情是沒有V2.0.2,我不能做一個,因爲它是在我發現升級產生的問題與第三方庫我應用。所以我需要的是MY應用程序的NEWER(Tuseday)版本包含第三方庫的OLDER版本(v2.0.0)。我找不到教程中提到的這個,你知道它是否在那裏提到?它必須是一個相當普遍的問題? –

+0

我猜我們自己更換工作應:http://wix.tramontana.co.hu/tutorial/upgrades-and-modularization/replacing-ourselves你也可以嘗試加入[威克斯用戶郵件列表(HTTP:/ /sourceforge.net/mailarchive/forum.php?forum_name=wix-users) – rene

回答

1

您可以使用MSI把戲。在msi數據庫的「文件」表中,編輯「版本」列並輸入更高的版本,例如3.0。這樣您就可以利用文件版本控制規則。