PRB: The MSDE Installation May Fail and Error 126 Is Logged When You Are Using Windows Installer Software (321283)



The information in this article applies to:

  • Microsoft SQL Server 2000 Desktop Engine (MSDE)
  • Microsoft Visual Studio .NET (2002), Professional Edition

This article was previously published under Q321283

SYMPTOMS

When you try to install Microsoft SQL Server 2000 Desktop Engine (MSDE) merge modules by using Windows Installer software, the installation silently fails and a verbose log for this failed installation that contains the following error message occurs:
Loading extended custom action library sqlcax.dll
Error 126 loading library sqlcax.dll
Action ended 16:15:39: GetSqlStates.2D02443E_7002_4C0B_ABC9_EAB2C064397B.
Return value 3.
With Microsoft SQL Server 2000 Desktop Engine (MSDE 2.0), you can use merge modules to consume the merge modules into your setup product and to create a setup package file.

This problem occurs if you use the Visual Studio .NET development environment to create this type of Windows Installer setup package.

CAUSE

This behavior occurs because the GetSQLStates custom action is sequenced to run before the StreamSupportFile custom action.

Before it can run properly, the GetSqlStates custom action requires that the file Sqlcax.dll has already been extracted by the install package into the installation temporary folder. However, the Sqlcax.dll file cannot be found because the StreamSupportFiles custom action, which places the Sqlcax.dll file into the temporary folder, has not yet run.

WORKAROUND

IMPORTANT: Microsoft does not recommend changing the default sequencing of the MSDE custom actions. Resequencing the MSDE custom actions, which results in altering the relative order of the custom actions, is not tested and therefore is not supported. Do not try to perform these modifications unless you are otherwise instructed by the product's vendor.

To resolve this issue, make sure to run the StreamSupportFiles custom action before the GetSqlStates custom action. To do so, you must manually modify the InstallExecuteSequence and InstallUISequence tables in the Windows Installer Package (.msi) and make sure that the StreamSupportFiles action sequence runs before the GetSQLStates action sequence.

STATUS

Microsoft is researching this problem and will post more information in this article when the information becomes available.

MORE INFORMATION

Use a database table editor, such as 0the ORCA tool, that is included with Windows Installer to make the modifications to the tables in your .msi package. For additional information on how to obtain and use ORCA, click the article number below to view the article in the Microsoft Knowledge Base:

255905 HOWTO: Use the Orca Database Editor to Edit Windows Installer Files

For additional information about how to consume merge modules and create a setup project (.msi) by using Visual Studio. NET, click the article number below to view the article in the Microsoft Knowledge Base:

307353 HOW TO: Create a Setup Package by Using Visual Studio. NET

You can specify that you want a verbose setup log file created and include the name and the location of the log file by running Setup and using the following command-line switch:
/L*v [filename]
				
For additional information about the complete list of the available command line switches, click the article number below to view the article in the Microsoft Knowledge Base:

227091 Command-Line Switches for the Windows Installer Tool


Modification Type:MajorLast Reviewed:10/17/2003
Keywords:kbpending kbprb KB321283