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.
Related
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.
In Excel 2010 for Windows, I associated a Click event to an ActiveX Control. In Excel 2011 for Mac, I understand I must use Form Controls rather than ActiveX Controls. How do I associate a Click with a Form Control command button? I don't seem to be able to get at the Properties of a Form Control as I previously did with an ActiveX Control.
This assumes that Mac Form Controls act like Windows ones. When you first create the button, you'll see the Assign Macro dialog. If you've already created the macro, you can select it then:
If you want to assign the macro later, you need to get the Assign Macro dialog. In Windows, you'd right-click like this:
I'm realizing this is not my most helpful answer ever, but hopefully it's good enough.
This is how I expected the toolbox to work:
Let's say I add a custom Tab to the Toolbox called "Ajaxtoolkit." To add controls to the new tab, I right mouse click and select "Choose Items" and browse to a file, Ajaxtoolkit.dll, that is of a particular version number.
I would expect that when I save and reopen the solution, that the Ajax Toolkit custom tab would still be in my Toolbox and that it would contain the same controls that were there last time, the controls that were in the dll that I referenced when the controls were added.
If I created a brand new web app, I (possibly) wouldn't expect to see the same Ajax Toolkit custom tab. However, I could perform the same steps as above and add a "Ajax Toolkit" tab and perhaps, this time, select a DIFFERENT VERSION of the tookit, and the state of the toolkit would be retained with each solution file.
Another possibility would be for the original Ajaxtoolkit to be retained when the 2nd web solution is created, and perhaps, if I wanted to mix versions of the toolkit across diffreent web sites in my solution, I should start naming my custom toolkit tabs with version specific names like "Ajaxtoolkit 4.0," etc.
...But instead, the Ajaxtoolkit tab disappears when I close VS2010 and reopen it.
Why? Is this desirable behavior or a bug?
You know VS2010 is a fully customizable IDE, may be these features conflicts your toolbox customization.
Currently I use Registry Settings within the Setup Project to set the file associations and the icon for the associated files for my application.
In the generic VS Setup project, the update to the registry is done always. How can I make the update to the registry conditional on the state of a checkbox dialog?
The key is to attach a condition to the Checkbox, and then perform the update based on the condition.
First, open the UI designer for your Setup Project.
Then, add a new dialog to the UI flow.
Select one of the Checkboxes dialogs. Any one, they are all the same.
You then have a new dialog in your UI Flow. Click on it.
In the property sheet, specify the name for the checkbox "property". This symbol will take the value 1 if the checkbox is checked, something other than 1 (I don't know) if unchecked.
Finally, attach to one of your other installer actions, a condition, using that property.
For example, you can conditionally update a registry key or value, only if that checkbox has been checked. View the registry designer, then select a node:
Then in the property sheet, specify CONDITION=1, for the condition, where CONDITION is the name of the property you attached to the checkbox in the step prior.
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.