MSI卸载不会删除Windows Server 2003 R2上的win32 DLL

时间:2012-08-03 05:49:27

标签: windows-installer windows-server-2003 uninstall

我已经构建了一个C#MSI安装程序,可以在系统目录中复制C ++ win32 dll。它安装在Windows 7,Windows Server 2008 R2和Windows Server 2003 R2上。

但是,卸载描述了不同的行为 - 在Windows 7上:卸载删除了C ++ DLL - 在Windows Server 2008 R2上:卸载删除了C ++ DLL - 在Windows Server 2003 R2上:卸载没有删除C ++ DLL

当删除prev version设置为true时,预计安装程序会使用较新版本替换C ++ dll。但它在Windows Server 2003 R2上没有被替换。

之前有人见过这个吗?请指教

1 个答案:

答案 0 :(得分:1)

这里有两件事:

首先,如果要将DLL安装到SystemFolder(System32 \ SysWow64),则永远不要卸载。 Microsoft Best Practices规定此处安装的文件应该是永久性的。

ICE09

其次,请确保您了解Default File Versioning规则。在安装和升级过程中,MSI将查看文件版本并使用它来确定是否覆盖该文件。如果您正在重建DLL并且没有正确地对文件进行版本控制,那么您将无法获得预期的结果。