cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
ShaimaaMohammad
Level 4

Custom Actions

Hi all,
I am from VS2005 background
I tried to make setup projects using vs2005,but I faced some problems so I dedcided to use Install Shield Premier 2009
In VS 2005 I made some dlls and used them as custom actions during the insallation
How to reuse those dlls in a setup project made by Installshield 2009?

How to make Arabic Language is the default language in setup?

How to add some controlls like Radiobuttons, Textbox,... to the interface?

What I want to do is to take an input from the user and do some action based on this input.

Thank you in advance.
Labels (1)
0 Kudos
(12) Replies
RobertDickau
Flexera Alumni

In InstallShield, you can use the view Behavior and Logic > Custom Actions and Sequences to add your DLL custom actions to the project.

Assuming you have the Premier Edition of InstallShield 2009, you can specify which languages the project should support in the view General Information > Project Properties > Setup Languages, and set the default when you build your release images in the Release Wizard.

You can modify existing dialog boxes and create new ones in the view User Interface > Dialog Boxes.

The online help has more details about all of these features.
0 Kudos
DebbieL
Level 17

InstallShield 2009 lets you convert Visual Studio setup projects to InstallShield projects. That way, you wouldn't need to start over from scratch by creating a new project in InstallShield. If you did this, InstallShield would take your DLL custom actions and incorporate them into your InstallShield projects.

For more information, see the following help topic:
Converting Visual Studio Projects to InstallShield Projects
0 Kudos
ShaimaaMohammad
Level 4

Thanks to you. You are very helpful.
I tried to open the setup from VS 2005 in the install shield
My Custom Actions DLLs was of type Installer Class. when I add it to Custom Actions in Install Shield I found that it's requried to add the function signature I want to call
It's like:
public override void Install(System.Collections.IDictionary stateSaver)
{
...
}

I want to choose the type, Source, and value of Arguments
How to do this?

The second thing I want to ask about
I choose General Information --> Product Properities --> and Select Arabic and make it the default language But When I build and Test the Release
Some characters like these appear
##IDS__IsAdminInstallPoint_SpecifyNetworkLocation## (in english dialog)
I found that in User Interface --> dialogs --> all dialogs --> there are arabic, english, behavior
I want to use only Arabic Dialog
0 Kudos
DebbieL
Level 17

InstallShield handles .NET installer classes differently than Visual Studio. In InstallShield, you need to configure the .NET installer class information for the component that contains the .NET file.

So, in the Components view or in the Setup Design view, find the component that contains your .NET file. Make sure that your .NET file is the component's key file. (For more info, see http://helpnet.acresso.com/Robo/BIN/Robo.dll?tpc=/robo/projects/installshield15helplib/SettingComponentKeyFiles.htm.) Then configure the .NET-related settings, as shown in the screen shot. I think that .NET Installer Class Arguments field is where you configure the signature info.

About the Arabic issue: I'm not sure that I understand. Do you want your installation to contain only Arabic? If so, you would go to the General Information view, and under Project Properties, remove the English option from the Setup Languages setting. You might also need to change some settings in the Releases view. (The Build tab has some language settings: Data Languages, UI Languages, and Default Language.)

I hope that helps.
0 Kudos
ShaimaaMohammad
Level 4

Thank You Mr.DebbieL for Help
The .Net Component of Installer Class is already exist
But how to use it in Custom Actions and call a specific method from it?
I want to call Install Method from the AccessDB (Installer Class)

Another Question:
How to know which User Interface Dialog are used?
0 Kudos
ShaimaaMohammad
Level 4

I tried to choose

Type:
call a function in a Windows Installer dynamic Link library

Location:
Stored in the Binary table

rather than

Type:
Call a function in a standard dynamic Link library

Location:
Stored in the Binary table

then I get error no. 2731 Selection Manager not initialized

I See the following description in Help:

A standard action or custom action made a call to a function requiring the selection manager before the initialization of the selection manager. This action should be sequenced after the costing actions.

So I did the following:

in the Custom Actions and Sequences --> Sequences --> Execute --> I made insert to myCustomAction.dll and gave it a sequence number that is greater than the sequence number of the Costings actions.

Although I did that the error is still appearing 😞

I also tried to make myCustomAction.dll executed after CostIntialize and CostFinalize But the same error Appeared 😞

What can I do to solve this problem ?
0 Kudos
ShaimaaMohammad
Level 4

How can I allow the user to browse the location the application will be installed in?

How can I make a default location that the user install the application in?
0 Kudos
ShaimaaMohammad
Level 4

What does thid message mean?
0 Kudos
DebbieL
Level 17

I think that what you're describing is what will happen when you select Yes for the Installer Class setting. However, if you want more control, take a look at managed-code custom actions.
0 Kudos
ShaimaaMohammad
Level 4

Thank You
I want to ask when the following error appears
0 Kudos
MichaelU
Level 12 Flexeran
Level 12 Flexeran

That is an incompatibility between the MSI debugger and managed-code custom actions that's being tracked under IOC-000076964. You should not encounter this problem outside the MSI debugger.
0 Kudos
ShaimaaMohammad
Level 4

Thank you but the managed code function I call isn't executed
What is the problem ?!!!

I call the install(...) method from an Installer class.
It works fine in a .Net Setup project and executed well. But what's the problem in the InstallShield?

What are the steps to do to call Install method from Installer Class in Installshield
0 Kudos