Alex DeNeui
2009-01-23 09:18:36 UTC
Hi all -
I have a managed CA created using DTF and WiX (3.0.4318) that is failing with MSI error 2896 on a single Windows XP machine with .NET 2.0 installed on it. The exact same MSI works fine on multiple XP and Vista machines. I spent some time looking into the issue, and it appears that on the faulty machine the DLL is not being extracted from the MSI and placed into the temp folder when the CA is invoked. The HD has plenty of space, virus scanners have been removed, etc. Any ideas?
I found an ancient thread where someone talked about a similar problem, but this appears to be an issue where the DLL is never extracted, not occasionally extracted: http://osdir.com/ml/windows.devel.wix.user/2005-06/msg00086.html
FYI my CA config
<Binary Id="GenerateLoginDll"
SourceFile="$(var.RootPath)\Installer.Login\bin\$(var.BuildType)\Installer.Login.Native.dll" />
<CustomAction Id="GenerateLogin" BinaryKey="GenerateLoginDll"
DllEntry="TryGenerateLogin" Execute="immediate" />
And my usings for the managed CA:
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Deployment.WindowsInstaller;
using System.Net;
using System.IO;
using System.Threading;
using System.Security.Cryptography;
using System.Windows.Forms;
Thoughts?
alexd
-----
MSI (c) (80:74) [08:46:36:723]: Creating MSIHANDLE (1) of type 790542 for thread 3700
MSI (c) (80:A4) [08:46:36:738]: Invoking remote custom action. DLL: C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\MSI1B.tmp, Entrypoint: TryGenerateLogin
MSI (c) (80:24) [08:46:36:801]: Cloaking enabled.
MSI (c) (80:24) [08:46:36:801]: Attempting to enable all disabled priveleges before calling Install on Server
MSI (c) (80:24) [08:46:36:801]: Connected to service for CA interface.
MSI (c) (80!38) [08:46:37:910]: Creating MSIHANDLE (2) of type 790531 for thread 3896
MSI (c) (80!38) [08:46:37:910]: Closing MSIHANDLE (2) of type 790531 for thread 3896
MSI (c) (80!38) [08:46:37:926]: Creating MSIHANDLE (3) of type 790531 for thread 3896
MSI (c) (80!38) [08:46:37:941]: Closing MSIHANDLE (3) of type 790531 for thread 3896
MSI (c) (80!38) [08:46:38:254]: Creating MSIHANDLE (4) of type 790531 for thread 3896
MSI (c) (80!38) [08:46:38:254]: Closing MSIHANDLE (4) of type 790531 for thread 3896
MSI (c) (80:A4) [08:46:38:332]: Closing MSIHANDLE (1) of type 790542 for thread 3700
Action ended 8:46:38: GenerateLogin. Return value 3.
DEBUG: Error 2896: Executing action GenerateLogin failed.
The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2896. The arguments are: GenerateLogin, ,
Action ended 8:46:38: WelcomeDlg. Return value 3.
MSI (c) (80:A8) [08:46:38:332]: Doing action: FatalError
Action 8:46:38: FatalError.
Action start 8:46:38: FatalError.
Action 8:46:38: FatalError. Dialog created
Action ended 8:46:41: FatalError. Return value 2.
Action ended 8:46:41: INSTALL. Return value 3.
I have a managed CA created using DTF and WiX (3.0.4318) that is failing with MSI error 2896 on a single Windows XP machine with .NET 2.0 installed on it. The exact same MSI works fine on multiple XP and Vista machines. I spent some time looking into the issue, and it appears that on the faulty machine the DLL is not being extracted from the MSI and placed into the temp folder when the CA is invoked. The HD has plenty of space, virus scanners have been removed, etc. Any ideas?
I found an ancient thread where someone talked about a similar problem, but this appears to be an issue where the DLL is never extracted, not occasionally extracted: http://osdir.com/ml/windows.devel.wix.user/2005-06/msg00086.html
FYI my CA config
<Binary Id="GenerateLoginDll"
SourceFile="$(var.RootPath)\Installer.Login\bin\$(var.BuildType)\Installer.Login.Native.dll" />
<CustomAction Id="GenerateLogin" BinaryKey="GenerateLoginDll"
DllEntry="TryGenerateLogin" Execute="immediate" />
And my usings for the managed CA:
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Deployment.WindowsInstaller;
using System.Net;
using System.IO;
using System.Threading;
using System.Security.Cryptography;
using System.Windows.Forms;
Thoughts?
alexd
-----
MSI (c) (80:74) [08:46:36:723]: Creating MSIHANDLE (1) of type 790542 for thread 3700
MSI (c) (80:A4) [08:46:36:738]: Invoking remote custom action. DLL: C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\MSI1B.tmp, Entrypoint: TryGenerateLogin
MSI (c) (80:24) [08:46:36:801]: Cloaking enabled.
MSI (c) (80:24) [08:46:36:801]: Attempting to enable all disabled priveleges before calling Install on Server
MSI (c) (80:24) [08:46:36:801]: Connected to service for CA interface.
MSI (c) (80!38) [08:46:37:910]: Creating MSIHANDLE (2) of type 790531 for thread 3896
MSI (c) (80!38) [08:46:37:910]: Closing MSIHANDLE (2) of type 790531 for thread 3896
MSI (c) (80!38) [08:46:37:926]: Creating MSIHANDLE (3) of type 790531 for thread 3896
MSI (c) (80!38) [08:46:37:941]: Closing MSIHANDLE (3) of type 790531 for thread 3896
MSI (c) (80!38) [08:46:38:254]: Creating MSIHANDLE (4) of type 790531 for thread 3896
MSI (c) (80!38) [08:46:38:254]: Closing MSIHANDLE (4) of type 790531 for thread 3896
MSI (c) (80:A4) [08:46:38:332]: Closing MSIHANDLE (1) of type 790542 for thread 3700
Action ended 8:46:38: GenerateLogin. Return value 3.
DEBUG: Error 2896: Executing action GenerateLogin failed.
The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2896. The arguments are: GenerateLogin, ,
Action ended 8:46:38: WelcomeDlg. Return value 3.
MSI (c) (80:A8) [08:46:38:332]: Doing action: FatalError
Action 8:46:38: FatalError.
Action start 8:46:38: FatalError.
Action 8:46:38: FatalError. Dialog created
Action ended 8:46:41: FatalError. Return value 2.
Action ended 8:46:41: INSTALL. Return value 3.