2016-11-23 71 views
0

我使用InstallShield创建了MSI并安装了一个软件包。 下一步我创建了一个更新。在MSI文件的属性页上,我必须设置与原始版本相同的“修订版号”,否则我会收到消息:运行更新MSI没有任何影响

此产品的其他版本已安装。此版本的安装无法继续。要配置矿石删除此产品的现有版本,使用添加/删除程序在控制面板

上但是,一旦我加倍对新的MSI单击系统实际运行的旧保存在C:\ WINDOWS \安装程序。无论如何强迫系统运行新的MSI文件? (我改变了版本号,但保留所有其他UID相同)

顺便说一句,当我删除注册表中的“LocalPackage”条目然后系统运行新的MSI。


现在我试着创建新的安装。我改变了主要版本和产品版本。我收到错误:

此计算机上已安装此应用程序的较新版本。如果您想安装此版本,请先卸载新版本。

+0

这一个解决了问题http://stackoverflow.com/questions/12337860/update-an-existing-installation-using-installshield-lecopy guid从/常规信息/“产品代码”到/升级PAth /升级代码 复制GUID从/常规信息/“产品代码”到/常规信息/升级代码 常规按钮“...”在/常规信息/产品代码中生成新GUID 可选设置。 In/Upgrade PAth /升级代码 禁用最大版本 启用最小版本,例如,您可以将版本0.0.0.1设置为最小值。 禁用languale依赖关系 – sergman

回答

0

定义产品是否安装的是ProductCode。一个MSI文件的版本号通常被称为PackageCode。 PaCckageCode和ProductCode必须与创建主要升级不同。

我不会建议删除本地包MSI。这用于维护和卸载。

+0

查看升级表以查看MSI是否支持相同版本的升级也很重要。如果不是,您还需要更新ProductVersion“x.y.z”。 – jbudreau

+0

如果我这样做了包,但在程序和功能中,两个包将显示为同名。 – sergman

+0

这意味着你几乎在那里,除了你可能没有正确配置主要升级。无论是原始的还是每个用户,新的都是每台机器(反之亦然)/ – PhilDW