2012-08-03 70 views
0

我已經構建了一個C#MSI安裝程序,用於複製系統目錄中的C++ win32 dll。它在Windows 7,Windows Server 2008 R2和Windows Server 2003 R2上安裝得很好。MSI卸載不會刪除Windows Server 2003 R2上的win32 DLL

然而,卸載描繪了不同的行爲 - 在Windows 7:卸載刪除C++ DLL - 在Windows Server 2008 R2:卸載刪除C++ DLL - 在Windows Server 2003 R2:卸載不刪除C++的dll

當刪除prev版本設置爲true時,預計將由安裝程序用新版本替換C++ dll。但它並沒有在Windows Server 2003 R2上被替換。

以前有人看過這個嗎?請在這裏打球勸

回答

1

兩件事情:

首先,如果你正在安裝一個DLL到SystemFolder(SYSTEM32 \ SYSWOW64)你永遠不應該卸載。 Microsoft最佳實踐規定,此處安裝的文件應該是永久性的。

ICE09

第二,確保你理解了Default File Versioning規則。在安裝和升級過程中,MSI會查看文件版本並使用它來確定是否覆蓋文件。如果您正在重建DLL並且沒有正確版本化該文件,則無法獲得您期望的結果。

相關問題