cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
ChristianSoto
Level 3

Managed Code Custom Action Problems

I have been searching the boards and found a document someone wrote on how to do this. It has helped alot, but it seems I am still missing a critical piece in making this work.

01515: (Unknown): InstallShield: Loaded CLR successfully
01516: (Unknown): InstallShield: Deferred action requested property MsiHiddenProperties not provided by CustomActionData
01517: (Unknown): InstallShield: Deferred property name="NativeStorage"
01518: (Unknown): InstallShield: Deferred property connstring="TestConnectionString"
01519: (Unknown): InstallShield: Deferred property filename="{ProgramFilesFolder}\Serveron\SA View\Serveron Client.config"
01520: (Unknown): InstallShield: Deferred property encrypt="true"
01521: (Unknown): InstallShield: Loading Assembly [#customactions.dll]
01522: (Unknown): InstallShield: Resolving assembly filekey [#customactions.dll].
01523: (Unknown): InstallShield: Deferred action requested property #customactions.dll not provided by CustomActionData
01524: (Unknown): InstallShield: Could not resolve [#customactions.dll]; is "#customactions.dll=" part of CustomActionData?01525: (Unknown): InstallShield: Unable to load managed custom action assembly [#customactions.dll]
01526: (Unknown): CustomAction customactions.dll returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)

I am not sure how to get the path property to be replaces correctly and more importantly, why the CustomActionData doesn't have the values required to run the code.

Any help would be great!
Labels (1)
0 Kudos
(4) Replies
MichaelU
Level 12 Flexeran
Level 12 Flexeran

Did you specify all the CustomActionData you need for this deferred action? Generally if the action is called MyDeferredAction, and like yours it uses a managed assembly installed with the product, you need to place a SetProperty custom action that precedes it, setting the property MyDeferredAction to include #customactions.dll="[#customactions.dll]"

In your case, it looks like it would be at least:[CODE]#customactions.dll="[#customactions.dll]" name="NativeStorage" connstring="TestConnectionString" filename="{ProgramFilesFolder}\Serveron\SA View\Serveron Client.config" encrypt="true"[/CODE]
0 Kudos
ChristianSoto
Level 3

Thanks, that did the trick!

I had the SetProperty custom action scheduled before my managed custom action, but I was missing #customactions.dll="[#customactions.dll]".

I am guessing this is needed because I am using a dll which is installed on the target machine.
0 Kudos
MichaelU
Level 12 Flexeran
Level 12 Flexeran

Right; the combination of an assembly installed on the target machine, and a deferred action requires this. Otherwise there is no way for the assembly to be located, as the usual MSI APIs for this do not work in a deferred action.
0 Kudos
manomatt
Level 8

I am having a managed dll and i need to pass some arguments to it while calling it..the arguments happen to be some poperties and i am calling the managed code custom action in deferred execution.i am a bit confused about how to pass a customActionData as paramers for a managed dll

some one please look into this and show some light into this. :confused:
thank you in advance


Mano
0 Kudos