首页 文章

无法安装相同版本的msi文件

提问于
浏览
0

我有一个msi版本1.0.2

现在,我修改了一些文件并使用相同的1.0.2版本创建了msi

我试着安装更新版本 . 这是错误的 " Unable to install because newer version of this product is already installed".

我必须发布最新版本的1.0.2 .

请让我知道如何解决这个问题 .

我已经使用过这个提示:

1.)设置DetectNewerInstalledVersion = true .

2.)设置RemovePreviousVersions = true .

3.)更改产品代码 .

但没有找到结果 .

提前致谢

2 回答

  • 1

    当您正在处理Windows应用程序并不时地部署解决方案时,您应该注意不要删除重新安装时的所有文件,例如数据库文件和用户生成的某些文件 .

    但是在更改应用程序安装项目版本号时,您会注意到EXE文件在大多数情况下都不会更新,为了确保重新安装EXE文件,您必须向名为REINSTALLMODE的MSI文件添加属性并给出它是一个值“amus”,我知道现在这对你没有任何意义所以我会更多地解释这个问题 .

    REINSTALLMODE属性是通过使用名为orca的软件(只是谷歌“下载orca for MSI”)编辑添加到MSI文件的属性,此属性有许多值和许多选项可以给它 .

    这里重要的一个值是amus,那么什么是amus以及如何添加所有REINSTALLMODE属性:

    安装orca后,打开它并在构建解决方案之后拖动msi文件 .

    您会注意到 Headers 表左侧添加了一组记录,向下滚动记录,直到找到名为“Property”的记录单击它,然后在右侧面板中打开其属性,右键单击然后单击添加行: ,在Property字段中写入REINSTALLMODE并在值字段add amus中,然后单击OK并保存您的MSI文件 .

    通过这样做,您的EXE文件和从安装程序安装而不使用自定义安装的所有文件将被删除 .

    小笔记amus代表:

    • a - 强制重新安装所有文件,无论版本如何 .

    • m - 重写所有转到HKEY_LOCAL_MACHINE或HKEY_CLASSES_ROOT的注册表项 .

    • u - 重写转到HKEY_CURRENT_USER或HKEY_USERS的所有注册表项 .

    • s - 重新安装快捷方式和图标 .

  • 1

    仅在增加版本时才会执行自动升级 . 如果您修改程序包并保留相同的版本,则无法自动删除具有相同版本的旧程序包 . 这是Windows Installer的限制 .

    相反,您可以在安装修改后的软件包之前手动卸载旧软件包 .

    另一种解决方案是创建一个自定义EXE引导程序,它可以检测当前版本是否已安装并在启动新程序包之前将其卸载 .

相关问题