0

我使用 installshield 2009 创建了一个应用程序安装程序。这个应用程序是一个 32 位应用程序。现在作为我们客户的要求,我们的软件必须通过 Windows 应用认证工具包测试 (WACK)。然后我尝试作为桌面应用程序进行测试,但结果失败。

注册表填充测试检测到以下错误:

应用程序未创建所需的注册表项。
写入适当的添加/删除程序值
错误发现:注册表填充测试检测到以下错误:应用程序没有创建所需的注册表项。
程序的非可选值“DisplayName”缺失或无效。
程序的可选值“InstallLocation”缺失或无效。
程序的非可选值“Publisher”缺失或无效。
程序的可选值“UninstallString”缺失或无效。
程序的非可选值“VersionMajor”缺失或无效。
程序的非可选值“VersionMinor”缺失或无效。
程序的非可选值“MajorVersion”缺失或无效。
程序的非可选值“MinorVersion”缺失或无效。
程序的可选值“InstallLocation”缺失或无效。

我在另一台已安装的机器上使用 regedit 检查。
注册表值正确,上述键均不为空或无效

Windows 注册表编辑器版本 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall{9DAA8BAB-2DD2-4BD5-A3A2-ACB2A28B8041}]
"AuthorizedCDFPrefix"=""
"Comments"=""
"Contact"=""
"DisplayVersion"="9.1 .0"
"HelpLink"=""
"HelpTelephone"="(123) 123-1234"
"InstallDate"="20140115"
"InstallLocation"="C:\Application Sample\"
"InstallSource"="C:\Install\ "
"ModifyPath"=hex(2):4d,00,73,00,69,00,45,00,78,00,65,00,63,00,2e,00,65,00,78,\00 ,65,00,20,00,2f,00,58,00,7b,00,39,00,44,00,41,00,41,00,38,00,42,00,41,00,\ 42,00,2d,00,32,00,44,00,44,00,32,00,2d,00,34,00,42,00,44,00,35,00,2d,00,41,\ 00,33,00,41,00,32,00,2d,00,41,00 ,43,00,42,00,32,00,41,00,32,00,38,00,42,00,\ 38,00,30,00,34,00,31,00,7d,00, 00,00
"NoModify"=dword:00000001
"NoRepair"=dword:00000001
"Publisher"="Sample Publisher"
"Readme"=""
"Size"=""
"EstimatedSize"=dword:0002861e
"UninstallString"=hex(2): 4d,00,73,00,69,00,45,00,78,00,65,00,63,00,2e,00,65,00,\ 78,00,65,00,20,00,2f ,00,58,00,7b,00,39,00,44,00,41,00,41,00,38,00,42,00,41,\ 00,42,00,2d,00,32, 00,44,00,44,00,32,00,2d,00,34,00,42,00,44,00,35,00,2d,00,\ 41,00,33,00,41,00 ,32,00,2d,00,41,00,43,00,42,00,32,00,41,00,32,00,38,00,42,\ 00,38,00,30,00, 34,00,31,00,7d,00,00,00
"URLInfoAbout"="www.publisher.com"
"URLUpdateInfo"=""
"VersionMajor"=dword:00000009
"版本次要"=dword:00000001
"WindowsInstaller"=dword:00000001
"版本"=dword:09010000
"语言"=dword:00000409
"DisplayName"="应用程序示例"



我还检查了与 WACK 相关的 Microsoft KB,它告诉发生此错误是由于注册表值无效或在安装过程中未创建注册表值。
有没有人有同样的经历?如何解决?
我尝试用谷歌搜索它,但没有人能给出确切的解决方案如何解决这个问题

4

3 回答 3

2

您上面提到的注册表项是由 Windows Installer 自动创建的,MSI 包不应该创建它们。您是否有 EXE 或 MSI 作为 IS 项目的输出?

正如您在下面的MSDN 文章中看到的,第5.5 点,Microsoft 声明相同,MSI 包安装会自动创建条目,因为 Windows Installer 在计算机上注册了您的安装程序。

于 2014-01-20T06:53:00.000 回答
0

我发现了问题,这是因为安装程序创建了一个安装程序,并且在卸载过程中安装程序没有被删除。此快捷方式还创建一些注册表并提供一些与安装的应用程序相关的参数。

为了解决这个问题,我回顾了快捷方式的创建过程,并为快捷方式提供了正确的卸载过程。

于 2014-01-23T03:50:16.040 回答
0

在花太多时间调整安装程序之前,我建议先在另一台机器上运行 WACK。我花了两天多的时间在网上搜索并“修复”我的 MSI 文件,只是为了发现同一个 MSI 在另一台机器上通过了 WACK 测试!

于 2015-01-29T12:13:27.730 回答