Eri*_* J. 8 visual-studio-2010 installshield-2011
我在VS2010中使用InstallShield LE遇到了障碍.第二次运行生成的setup.exe(增加版本号),我收到错误
该产品的另一个版本已经注册
通过"递增的版本号",我的意思是我将Minor版本,Build Number和Revision更改为我的.exe的AssemblyVersion和AssemblyFileVersion中的较大数字(DLL的设置为"1.0.*")
[assembly: AssemblyVersion("0.2.103.005")]
[assembly: AssemblyFileVersion("0.2.103.005")]
[assembly: AssemblyInformationalVersion("Alpha 0.1 - 2/8/2011")]
Run Code Online (Sandbox Code Playgroud)
并且还在Installshield LE安装项目的"常规信息"选项卡中将产品版本从0.10.0000更新为0.11.0000.
我确实在其他SO帖子和制造商的社区支持论坛上遇到过此错误消息的实例,但未找到适用于我的解决方案.
Eri*_* J. 12
事实证明,答案是在"升级路径"选项卡上创建一个条目.执行此操作时,InstallShield LE将显示文件选择对话框.如果您有旧的安装程序,可能您可以浏览它以获取有关您希望从哪个版本升级的信息.在我的情况下,我没有方便的旧安装程序,所以我按下取消,无论如何创建了新的升级路径条目.然后,我调整了该条目的属性,以指定升级的最小和最大版本,并且一切都按预期工作.
编辑
(来自@ lookatmike的评论)
您还必须在常规信息选项卡中更改产品版本和(有点违反直觉)产品代码.升级代码必须保持不变.
好的 - 这个问题让我疯狂 - 而且我还没有在网上找到一个完美的答案.
所以我决定搞砸了.
这可能不是解决问题的"最佳"方式 - 我确信有一些基于MSI的复杂方式"正确处理"但我无法弄明白(我想我很笨?)
基本上我的安装程序只是确保安装了.NET,并将一些文件复制到Program Files目录,添加了一些注册表项,快捷方式等.
如果你有一个更复杂的安装程序 - 我鼓励你在别处找到"正确"的答案.但是对于像我这样简单的事情(我怀疑95%的人都在努力解决这个问题)这样做很好.
首先 - 永远不要触摸"产品代码".我相信这是MSI全面正确的程序......你不应该改变产品代码.而这个解决方案也依赖于此.
下一步 - 将产品代码复制到剪贴板 - 我们将在一秒钟内完成.
基本上,如果机器上已经存在,我们将告诉InstallShield始终卸载该产品.


如果您或您的合作伙伴曾经安装过SILENTLY - 请确保在以下两个位置执行此操作:

对于"文件名和命令行",请输入:
msiexec /uninstall {YOUR PRODUCT CODE HERE} /passive
而已.现在,您的安装程序将始终卸载旧版本.
注意:这会消除"我是否运行较新版本的安装程序"的任何排序"检查".
| 归档时间: |
|
| 查看次数: |
8277 次 |
| 最近记录: |