0

I create an application installer using installshield 2009. This application is a 32-bit application. Now as the requirement from our client, our software must passed the Windows App Certification Kit test (WACK). Then I try to testing as a desktop application, but the result is failed.

The registry population test detected the following error:

App didn’t create the required registry entries.
Write appropriate Add/Remove Program values
Error Found: The registry population test detected the following error: app didn’t create the required registry entries.
A non-optional value 'DisplayName' is missing or invalid for program .
An optional value 'InstallLocation' is missing or invalid for program .
A non-optional value 'Publisher' is missing or invalid for program .
An optional value 'UninstallString' is missing or invalid for program .
A non-optional value 'VersionMajor' is missing or invalid for program .
A non-optional value 'VersionMinor' is missing or invalid for program .
A non-optional value 'MajorVersion' is missing or invalid for program .
A non-optional value 'MinorVersion' is missing or invalid for program .
An optional value 'InstallLocation' is missing or invalid for program .

I check with regedit onanother machine with installed.
The registry value is correct, none of the key stated above is empty or invalid

Windows Registry Editor Version 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
"VersionMinor"=dword:00000001
"WindowsInstaller"=dword:00000001
"Version"=dword:09010000
"Language"=dword:00000409
"DisplayName"="Application Sample"



I'm also check with Microsoft KB related with WACK, it told that this error happened due to invalid registry values or the registry values was not created during installation.
Does anyone have the same experience with this? How to fix it?
I try to google it, but no one can give the exact solution how to fix this

Jerry Nixon
  • 31,313
  • 14
  • 117
  • 233
  • Is this the only key under `Uninstall` that your installation adds? Are you including any prerequisites that might add invalid keys? – Michael Urman Jan 17 '14 at 13:07
  • There is also access 2003 run time and some 3rd party pdf converter. Is it also checked by this WACK things? I believe those two have a complete registry keys, but I'll check further. Thanks for your comment – Dork Programmer Jan 17 '14 at 14:58

3 Answers3

2

The registry entries you mentioned above are created automatically by Windows Installer, the MSI package should not create them. Do you have a EXE or and MSI as output from your IS project?

As you can see in the following MSDN article, point 5.5, Microsoft states the same, the MSI package installations automatically create the entries, as a result of Windows Installer registering your installer on the machine.

Bogdan Mitrache
  • 10,536
  • 19
  • 34
  • So the msi package should not create the registry entries? And the registry entries should created using separated application? I try to create the EXE application that create registry entry under UNINSTALL key, but the result still failed. Yes I have an EXE or and MSI as the output. – Dork Programmer Jan 20 '14 at 09:51
  • You misunderstood me. There is no other EXE that you need to create, an MSI does not run by itself, it is a just a simple Windows Installer database file. The actual installation of an MSI is done by the system service of Windows Installer, (msiexec.exe), this service should create a set of those registry entries for each MSI installed on the machine. That being said, the registry entries should not be included in the Registry table (http://msdn.microsoft.com/en-us/library/aa371168(v=vs.85).aspx) of your MSI nor should you write another application to create those entries. – Bogdan Mitrache Jan 20 '14 at 10:13
  • Oh I'm sorry for misunderstanding. I'm still newbie in this installshield. Okay, I got your point of your answer now. But I still confuse how to pass the testing. Thanks for the answer – Dork Programmer Jan 20 '14 at 10:35
0

I found the problem, this was caused because the installer create an installer and somehow installer was not removed during uninstall process. This shortcut also create some registry and give some parameter that related to the application installed.

To fix this, I review the shortcut creation process and give the proper uninstall process for the shorcut.

0

Before investing too much time in tweaking the installer I recommend to run the WACK first on another machine. I lost more than two days searching the net and "fixing" my MSI file just to find out that the same MSI passed the WACK tests on another machine!

pi3
  • 1,235
  • 13
  • 15