Error 1001 using custom installer with Visual Studio 2008
Asked Answered
H

2

8

I've created a simple winforms app and a custom installer. It all seems simple enough but I get the following popup and error details in the event log.

Error message box displayed before running the custom action code

The description for Event ID 11001 from source MsiInstaller cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.

If the event originated on another computer, the display information had to be saved with the event.

The following information was included with the event:

Product: Custom Action Tester -- Error 1001. Error 1001. Exception occurred while initializing the installation: System.IO.FileNotFoundException: Could not load file or assembly 'file:///C:\Windows\system32\Action' or one of its dependencies. The system cannot find the file specified.. (NULL) (NULL) (NULL) (NULL) (NULL)

the message resource is present but the message is not found in the string/message table

I have checked C:\Windows\system32 and there is no file or folder called Action but there are 3 files called ActionCenter.dll, ActionCenterCPL.dll and ActionQueue.dll

Any ideas how I resolve this error?

EDIT:

Following the suggestion of cosmin-pirvu I ran the installer with logging. The area where it appears to error is shown below but I'm still none the wiser as how to resolve the issue.

MSI (s) (40:7C) [09:34:26:523]: Executing op: CustomActionSchedule(Action=_FBC0CC84_D5B4_41F9_A3EC_98A13BC7E73E.install,ActionType=3073,Source=BinaryData,Target=ManagedInstall,CustomActionData=/installtype=notransaction /action=install /LogFile= /targetdir="C:\Test\Custom Action Tester\" /Param1="C:\Test\TestFile.txt" /Param2="C:\Test\" "C:\Test\Custom Action Tester\ConfigSetup.dll" "C:\Users\wildb\AppData\Local\Temp\CFG66BE.tmp")
MSI (s) (40:94) [09:34:26:525]: Invoking remote custom action. DLL: C:\Windows\Installer\MSI85A8.tmp, Entrypoint: ManagedInstall
MSI (s) (40:F0) [09:34:26:525]: Generating random cookie.
MSI (s) (40:F0) [09:34:26:557]: Created Custom Action Server with PID 6492 (0x195C).
MSI (s) (40:D4) [09:34:26:586]: Running as a service.
MSI (s) (40:D4) [09:34:26:587]: Hello, I'm your 32bit Elevated custom action server.
DEBUG: Error 2835:  The control ErrorIcon was not found on dialog ErrorDialog
The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2835. The arguments are: ErrorIcon, ErrorDialog, 
Error 1001. Error 1001. Exception occurred while initializing the installation:
System.IO.FileNotFoundException: Could not load file or assembly 'file:///C:\Windows\system32\Action' or one of its dependencies. The system cannot find the file specified..
MSI (s) (40!4C) [09:34:29:580]: 
MSI (s) (40:94) [09:34:29:584]: Leaked MSIHANDLE (14) of type 790531 for thread 7244
MSI (s) (40:94) [09:34:29:584]: Note: 1: 2769 2: _FBC0CC84_D5B4_41F9_A3EC_98A13BC7E73E.install 3: 1 
DEBUG: Error 2769:  Custom Action _FBC0CC84_D5B4_41F9_A3EC_98A13BC7E73E.install did not close 1 MSIHANDLEs.
The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2769. The arguments are: _FBC0CC84_D5B4_41F9_A3EC_98A13BC7E73E.install, 1, 
CustomAction _FBC0CC84_D5B4_41F9_A3EC_98A13BC7E73E.install returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)
Action ended 09:34:29: InstallExecute. Return value 3.

This was supposed to be a quick win to make life simpler for our users; they didn't want to have to edit config files... but it's turned into a bit of a nightmare. :o(

EDIT 2:

After a lot of playing around, the error only presents itself when parameters are specified in the custom action as shown in the picture. The problem is, the custom installer is useless without being able to read the values entered in the preceding install screens.

Custom action property screen

Husky answered 13/12, 2011 at 14:45 Comment(1)
Try creating a verbose installation log to see what triggers the error: setupanddeployment.com/debugging/msi-log . You can search for "Return Value 3" in the log.Vidavidal
H
7

After many hours going around in circles I have finally found the problem and more importantly, the solution.

It should be possible to pass the parameters as "CustomActionData" as defined on this blog but the parameters are a little querky to say the least...

I found that the text parameters can't have quotes around the parameter name and should be formatted like this:

/Param1=[CONFIG_TESTFILE] /Param2=[CONFIG_TESTFOLDER]

In addition, to use the target directory parameter you need to include the quotes but instead of ending the field with a back slash, you must use a space instead, like this:

/target="[TARGETDIR] "

Husky answered 15/12, 2011 at 14:56 Comment(2)
I would suggest to use the "\" instead of a space for the target. You can easily use this code to get the correct path : string exePath = Path.Combine(Context.Parameters["targetdir"], "TestForSetup.exe"); var config = ConfigurationManager.OpenExeConfiguration(exePath);Jacobean
@Stef Even with the trailing "\", you have to add an extra space in order for the installer to work correctly. (Without the space, my installer successfully installs my software, but un-installation fails showing the above message.) It seems this is because the installer treats the ending "\" as an escape character for the ending double quote ("). So you have to insert an space in between.Loesceke
C
2

I had the same issue. In my case this blog helped: https://timgolisch.wordpress.com/2016/06/05/error-1001-exception-occurred-while-initalizing-the-installation/

Just to sum it up: check if your Output project Target .NET Framework version is matching with the Installer project Launch Condition .NET Framework version.

Corinecorinna answered 28/2, 2019 at 14:54 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.