InstallShield 2010 Basic MSI Project -Adding a dialog to execute sequence - customdialog

How to add a custom dialog to the execute sequence of a Basic MSI project in InstallShield 2010?
I want this dialog to be shown when installer is run directly as a .EXE file or
from the command line MSIEXEC.EXE with basic ui command line argument
Is this possible to do, if so how?
Thanks in advance
Raghu.

Create your dialog in the User Interface view. Then, depending on whether you want it to be part of the wizard panels, or standalone, either:
Edit the Control Events of the Next and Back buttons to have NewDialog actions that point to your new dialog, and from it to its new surrounding pages, or
Add to the InstallUISequence a custom action that references your new dialog, and ensure that it has a Control Event action that will close it.
Chances are most dialogs will be better as part of the series of wizard panels, so I would suggest going with the first option.

Related

WIx Installer: is there any way to auto close installer shield after successful installation

I want to auto close installer window on successful installation without pressing final close button.
Using wix installer can we able to achieve it.
Installation Result: This dialog is generally there to show whether the installation completed successfully or not - hence it is not a good idea to remove it. In fact there are usually several such exit dialogs: FatalError, UserExit and ExitDialog - depending on how the setup ended. Use Orca and go to: Tools => Dialog Preview to see what the dialogs look like.
Customize GUI: You can, however, remove the dialog from the sequence by customizing the standard WiX dialog set to be as you want it yourself. You can also remove all dialogs from an MSI, but not adding a default dialog set, but that is not recommended.
Some pointers on WiX GUI
Here is a sample on customizing WiX dialogs: https://github.com/glytzhkof/WiXCustomDialog
Here is a standard WiX GUI dialog set in use: https://github.com/glytzhkof/WiXDefaultDialogsSample (you can remove the dialogs by commenting out this line - then your setup has no dialogs except system dialogs).

Skip A Dialog In Visual Studio Setup Project

I've created a Visual Studio Setup Project (VS 2010) in which one dialog (4 textboxes) is optional. It depends upon a checkbox selection by user in previous dialog. Is there any way I can skip the optional dialog ?
There are no capabilities in Visual Studio setups to do this. VS setups are going away anyway after VS 2010, so you should choose an MSI-building tool that has this capability.
You could in principle use Orca to manually change the MSI tables, such as the ControlEvent table, but it will be virtually impossible unless you already know how the MSI internals work.
I haven't found out a way to skip a dialog depending upon a control(e.g. checkbox or radiobuttongroup) selection by user in previous dialog;
but you can create a custom dialog(ref link1, ref link2) with all required control(s), and then toggle the visibility of the control(s) with "Show/Hide" Action with proper condition statement(e.g. then checkbox or radio buttongroup selection by user in previous dialog), then you can still make it just like skipping a dialog.
Here is my example:
The previous dialog control selected value(already set to be either "Foo" or "Bar") is passed through "SELTYPE".
When SELTYPE="Foo", I will show controls named "CustomControlFoo" and "RadioButtonGroup", and also hide the control named "BodyText";
When SELTYPE="Bar", I will hide controls named "CustomControlFoo" and "RadioButtonGroup", and also show the control named "BodyText".
For more information, please read this Micorosoft's official reference:
ControlCondition Table
The action that is to be taken on the control. The possible actions are shown in the following table.
Table 2
Value Meaning
Default Set control as the default.
Disable Disable the control.
Enable Enable the control.
Hide Hide the control.
Show Display the control.

Prevent custom tool from running when I save a file

Visual Studio has a feature called Custom Tools. The Custom Tool will run every time I save a file or, if I click the "Run Custom Tool" menu item. Is there a way to make it run only when I click the Run Custom Tool menu item?
I don't believe there is any way to discriminate from within the custom tool code. This may be stating the obvious, but it sounds like a normal VS add-in would be more appropriate in your case.

How to stop WiXUI flickering

I've been playing around WiX lately, and I have found that WiXUI wizard is not flicker-free. When you click "Next" to advance to the next step in the wizard, the wizard window is actually destroyed and then a new window is created with the next step. This does not allow for clean transition between "wizard pages". I come from Inno Setup, where this is perfect, no flickering or window recreation at all.
Is it possible to achieve flicker-free wizard steps transition in WiX, and how?
Is it possible to create my own wizard GUI (in C++ or Delphi), which would WiX use instead of the WiXUI?
That's how MSI handles the NewDialog control event. If you want complete control over UI, you need an external UI handler, like Burn in WiX v3.6.

Customizing Repair option in MSI

I have a Visual Studio Setup Project that is very basic except for one modification. I have two different libraries that I would like installed based on the user's selection. I added a checkbox screen and conditions to the files. They can install either component or both components. This all works fine.
Now for my requirement. Let's say that the user installed the MSI and selected only one component. Now, they need to install the second component from the same MSI. If they run the MSI again, I get the option to repair or remove. Repair will only fix the component that was installed originally. How can I give them the option to install the other components by showing the checkbox screen again?
If this functionality isn't available in a VS Setup Project, is there something else where it is? WiX perhaps?
I don't think VS Setup projects support this. Wix or MSI's created from other tools like Installshield can support this. The usual way to handle this would be to create separate features and assign the different components to each feature. Then if the MSI is built using WiX or some other tool, from add/remove there will be the Change button/option through which you can get the option to repair, modify, or uninstall. Modify then lets you change your feature selections without doing a reinstall.
You need to use the free MSI editors like ORCA or SuperORCA. Microsoft use to provide ORCA tool in their service pack. Not sure if they are continuing so. SuperORCA tool you can find at http://www.pantaray.com/msi_super_orca.html. Now when I had similar task to achieve following was my approach. I used SuperOrca to open my MSI file.
1] On repair/remove MSI dialog screen, add one more radiobutton for "Modify" - In SuperOrca-->Under RadioButton table --> Add entry for Modify radiobutton
2] Rename BackButton's text to "Reinstall" from its original "Back" --> In SuperOrca-->under Control table --> change Text property to rename Back to Reinstall
3] On selection of Repair/Remove radio button enable Finish button and disable Reinstall button. On select of modify radio button enable Reinstall button and disable Finish button - In SuperOrca--> Under ControlCondition table --> add entries for enable/disable "Reinstall" and "Finish" buttons for each comibinations for repair/remove screen (In my case dialog form name is "MaintananceForm")
4] Now from SuperOrca tools ControlEvent table find out conrol name for BackButton, In my case it is "PreviousButton". Now modify its Event, Argument & Condition entries from the table. And the values for these properties must be the same for the "Next" button properties from the Welcome screen of MSI file which redirects user to show installation options to choose.
Note: This is working fine for me. But when you re-select installation options again and click Next, somehow it does not forced for installing the selected option. Instead it repairs the MSI. I tried deleting entries from Windows\Installer folder so that MSI will not pick cashed installed version but no luck. If anybody is having answer on how to forced MSI to re-install through MSI setup wizard please let me know.

Resources