我在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帖子和制造商的社区支持论坛上遇到过此错误消息的实例,但未找到适用于我的解决方案.
我正在使用Basic MSI来安装我的应用程序.
我Error 1001在安装过程中得到了回滚动作.我在安装日志中注意到我收到此错误:
"CustomAction返回实际的错误代码1603.操作结束了InstallFinalize.返回值3.
Custom Action dll是.NET Installer类,属性设置为True.
有谁知道可能是什么问题?
我的安装程序的32位和64位版本(几乎)具有完全相同的代码和自定义操作序列(只有与此问题无关的细微差别)
我希望我的安装程序检测它是否已经安装过,在这种情况下运行我自己的代码而不是显示默认的Windows Installer错误:
已安装此产品的另一个版本.此版本的安装无法继续.要配置或删除此产品的现有版本,请使用"控制面板"上的"添加/删除程序".
如果我在安装产品时运行安装程序,我的32位安装程序可以正常运行我的自定义代码,但是我的64位安装程序中的相同代码和自定义操作无法正常运行并始终显示不需要的错误味精.
CheckPreviousVersion是第一个在UI序列中被称为自定义动作的函数,我尝试将它放在不同的位置,比如在InstallValidate之后,但没有任何作用.
我已经检查了详细的日志文件,但我找不到任何可能解释此行为的内容,这里是日志的一部分:
=== Verbose logging started: 05/03/2013 16:27:20 Build type: SHIP UNICODE 5.00.7601.00 Calling process: C:\Windows\system32\msiexec.exe
===
MSI (c) (0C:94) [16:27:20:331]: Machine policy value 'Debug' is 0 MSI (c) (0C:94) [16:27:20:331]: ******* RunEngine:
******* Product: foo.msi
******* Action:
******* CommandLine: ********** MSI (c) (0C:94) [16:27:21:546]: Machine policy value 'DisableUserInstalls' is 0 MSI (c) (0C:94) [16:27:21:557]: SOFTWARE RESTRICTION POLICY: Verifying package --> 'C:\Builds\.msi' against software restriction policy MSI (c) (0C:94) [16:27:21:557]: Note: 1: 2262 2: DigitalSignature …Run Code Online (Sandbox Code Playgroud) installer windows-installer installshield installshield-2011