我使用installshield 2009创建了一个应用程序安装程序。此应用程序是一个32位应用程序。现在,根据我们客户的要求,我们的软件必须通过Windows应用程序认证工具包测试(WACK)。然后我尝试作为桌面应用程序进行测试,但结果失败了。
注册表填充测试检测到以下错误:
应用程序未创建所需的注册表项
写入适当的添加/删除程序值
发现错误:注册表总体测试检测到以下错误:应用程序未创建必需的注册表项
非可选值"DisplayName"为程序丢失或无效
可选值"InstallLocation"对于程序丢失或无效
A非可选值"Publisher"丢失或对程序无效
程序缺少可选值"UninstallString"或该值无效。
对于缺少非可选值"VersionMajor"或该值无效程序
缺少非可选值"VersionMinor"或对程序无效
非可选值"MajorVersion"为程序丢失或无效
非可选值"MinorVersion"对于程序丢失或无效
可选程序缺少值"InstallLocation"或该值无效
我使用regedit检查其他已安装的机器
注册表值正确,上面所述的密钥都不是空的或无效的
Windows注册表编辑器5.00版
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall{9DAA8BAB-2D2-4BD5-A3A2-ACB2A8B8041}]
"AuthorizedDFPrefix"=">
"Comments"="">
"Contact"="123-1234">
"InstallDate"="20140115">
InstallLocation"="C:\Application Sample\">
1InstallSource"="C:\Install\">
"ModifyPath"=十六进制(2):4d,00,73,00,69,00,45,00,78,00,55,03,00,2e,00,65,00,78\00,65,00,20,00,2f,00,58,00,7b,00,39,00,44,00,41,00,38,00,42,00,41:00\42,00,2d,00,32,00,44,00,44,30,32,00,2d,00,34,00,42,00,4,44,00,35,00,2d、00,41\00,33,00,41,0,32,00,2d,00,41,0,043,00,42,00,32,32,00,41,00,38,00,42,00\38,00,30,00,34,00,31,00,7d,00,00,00
"NoModify"=dword:000000001
《NoRepair》=dword:00000001
《Publisher》="Sample Publisher">
\78,00,65,00,20,20,20f,00,58,00,7b,00,39,00,44,00,41,00,38,00,42,00,41\00,42,00,2d,00,32,00,44,00,32,02,2d,00,34,44,00,44,00,35,00,2d,00\41,00,33,00,41,00,32,00,2d,00,41,0,43,00,42,00,32,32,00,41,00,38,00,42\00,38,00,30,00,34,00,31,00,7d,00,00,00
"URLInfoAbout"="www.publisher.com">
《URLUpdateInfo》=">
VersionMajor"=dword:000000009
Version Minor=dword:00000001
Windows安装程序"=dword:00000001
"版本"=dwod:009010000
语言"=dward:000000409
DisplayName"="应用程序示例">
1
我也在与WACK相关的Microsoft KB核实,它告诉我发生此错误是由于无效的注册表值或注册表值不是在安装过程中创建的。
有人有同样的经历吗?如何修复
我试着用谷歌搜索它,但没有人能给出如何修复这个的确切解决方案
上面提到的注册表项是由Windows Installer自动创建的,MSI包不应该创建它们。你有EXE或MSI作为你的IS项目的输出吗?
正如您在下面的MSDN文章第5.5点中所看到的,Microsoft声明相同,MSI软件包安装会自动创建条目,这是Windows Installer在计算机上注册安装程序的结果。
我发现了这个问题,这是因为安装程序创建了一个安装程序,但在卸载过程中安装程序没有被删除。这个快捷方式还创建了一些注册表,并提供了一些与安装的应用程序相关的参数。
为了解决这个问题,我查看了快捷方式的创建过程,并给出了shorcut的正确卸载过程。
在花太多时间调整安装程序之前,我建议先在另一台机器上运行WACK。我花了两天多的时间在网上搜索并"修复"了我的MSI文件,结果发现同一个MSI通过了另一台机器上的WACK测试!