我有一个msi版本1.0.2
现在,我修改了一些文件并使用相同的版本1.0.2创建了msi
我尝试安装更新版本。它出现错误,如“无法安装,因为已安装此产品的较新版本”。
我必须发布最新版本的1.0.2。
请告诉我如何解决此问题。
我已经使用过这个提示:
1.)设置DetectNewerInstalledVersion = true。
2.)设置RemovePreviousVersions = true。
3.)更改产品代码。
但没有找到结果。
提前致谢
答案 0 :(得分:1)
当您正在处理Windows应用程序并不时地部署解决方案时,您应该注意不要删除重新安装时的所有文件,例如数据库文件和用户生成的一些文件。
但是在更改应用程序安装项目版本号时,您会注意到EXE文件在大多数情况下都不会更新,为了确保重新安装EXE文件,您必须向MSI文件中添加一个属性REINSTALLMODE并给它一个值“amus”,我知道现在这对你没有任何意义所以我会更多地解释这个问题。
REINSTALLMODE属性是通过使用名为orca的软件(只是谷歌“下载orca for MSI”)编辑添加到MSI文件的属性,此属性有许多值和许多选项可供给它。 / p>
这里重要的一个值是amus,那么什么是amus以及如何添加所有REINSTALLMODE属性:
在安装orca之后,打开它并在构建解决方案之后拖动你的msi文件。
您会注意到标题表左侧添加了一组记录,向下滚动记录,直到找到名为“Property”的记录点击它,然后在右侧面板中打开其属性,右键单击然后单击在Property字段中添加row:,编写REINSTALLMODE,在值字段add amus中,单击OK并保存MSI文件。
通过这样做,您的EXE文件和从安装程序安装而不使用自定义安装的所有文件都将被删除。
小笔记amus代表:
答案 1 :(得分:1)
仅在增加版本时才执行自动升级。如果您修改程序包并保留相同的版本,则无法自动删除具有相同版本的旧程序包。这是Windows Installer的限制。
相反,您可以在安装修改后的软件包之前手动卸载旧软件包。
另一个解决方案是创建一个自定义EXE引导程序,它可以检测当前版本是否已安装,并在启动新程序包之前将其卸载。