【问题标题】:MSI uninstall does not remove win32 DLL on Windows Server 2003 R2MSI 卸载不会删除 Windows Server 2003 R2 上的 win32 DLL
【发布时间】:2012-08-03 05:49:26
【问题描述】:

我已经构建了一个 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

当 remove prev version 设置为 true 时,预计安装程序会将 C++ dll 替换为较新版本。但它不会在 windows server 2003 R2 上被替换。

有人见过这个吗?请指教

【问题讨论】:

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


    【解决方案1】:

    这里有两件事:

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

    ICE09

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

    【讨论】:

      猜你喜欢
      • 2012-09-29
      • 2011-09-14
      • 2014-02-19
      • 1970-01-01
      • 1970-01-01
      • 2011-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多