In [Components] I have two components (say A and B) defined exclusive. In fact the two components are not really components but two versions of the application configuration the user must choose from.
Assume the user has installed my application with component A chosen. If the user installs an update of my application this time choosing component B a warning box pops up that says
Setup has detected that the following components are already installed on your
....
Deselecting these components will not uninstall them.
Would you like to continue anyway?
Is there any way to suppress this warning message since it is in my case rather confusing to the user (since he knows that component A and B are just different versions of the application configuration)?
Am I misusing the wizard component selection page? If yes what else should I use to allow the user to select version A or B for his application configuration?
First, yes, you are possibly misusing the components. Would not a setup type be more appropriate?
Anyway, you can use the disablenouninstallwarning flag:
Instructs Setup not to warn the user that this component will not be uninstalled after he/she deselected this component when it's already installed on his/her machine.
Depending on the complexity of your components, you can try to use the [InstallDelete] section and this flag to automatically 'uninstall' deselected components.
Related
I have an inno setup installer script that already handles closing one of the applications in use (that runs in the system tray) as part of ssInstall using old V5 ANSI version. With V6 version the restart manager support wants warn that it's open and will close it.
I found the CloseApplicationsFilter value that can be used in [setup] but I want the inverse case, I want to tell it which NOT to include (exclude just one .exe) otherwise handle all the other files as normal.
Is that possible?
Thanks.
I have created 3 independent MSI files using WIX3.8
The first MSI package is the core package which installs the basic(Core) components.
The other two MSI packages are add on to the first MSI. I have put the necessary checks in place which will prevent a user from installing the add-ons if the basic components are not installed.
The problem now is how do I prevent the user from un-installing the core components when the add-ons are installed?
I have added specific registry keys while installing each MSI so that I can refer them.
I have spent over 2 days on Google and SO but could not find any solution :(. If I missed anything please provide me the reference link.
Any help is greatly appreciated.
Use the Upgrade element with the other addon components upgrade codes to detect the other products.
E.G. In your core components installer add something like
<Upgrade Id ="Addon Product A's Upgrade GUID">
<UpgradeVersion OnlyDetect="yes" Minimum="0.0.0.0" Property="ADDONADETECTED" IncludeMinimum="no" />
</Upgrade>
<Upgrade Id ="Addon Product B's Upgrade GUID">
<UpgradeVersion OnlyDetect="yes" Minimum="0.0.0.0" Property="ADDONBDETECTED" IncludeMinimum="no" />
</Upgrade>
<Condition Message="There are other products that depend on these components, aborting uninstall.">
<![CDATA[ADDONADETECTED OR ADDONBDETECTED AND (NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")]]>
</Condition>
I would:
Add ARPSYSTEMCOMPONENT to those MSI files so they don't show in Programs&Features.
Assuming you allow normal major upgrades, make the bundle do the uninstall with a command line parameter such as BUNDLEUNINSTALL=1 and then have a type 19 custom action that prevents the uninstall from continuing if REMOVE="ALL" AND BUNDLEUNINSTALL<>1.
I'm not sure that a registry search provides a good solution. I would use a custom action based on MsiEnumRelatedProducts (upgradecode of other products using these components) to find the ProductCodes of those products. If you get some ProductCodes back then you can call a type 19 custom action to prevent the uninstall. In general Rick's suggestion is good, but I think the strategy you should go for is to use a bundle. This kind of thing: http://wixtoolset.org/documentation/manual/v3/xsd/dependency/provides.html
I created a setup file which is working awesome.
Now whenever I rebuild an application without changing anything but Package Code is changed and then while I am going to install this version then a dialog will come "Upgrade Dialog" which ask me for upgrade an application.
Now in this situation I want to display an additional dialog created by me.
I am using the Insatllshield 2012 BASIC MSI project type.
I solved this problem.
There are two properties exist in Installshield named "IS_MINOR_UPGRADE" and "IS_MAJOR_UPGRADE".
When there is a minor upgrade at that time IS_MINOR_UPGRADE will set to 1. And same for Major upgrade.
So using these properties, I can recognize the Upgrade mode.
Any time you change the package code but not the product code you are talking about a Minor Upgrade or possibly a Small Update if you don't change the ProductVersion. Either way, the only way to create a custom message like you ask is to write your own setup.exe / update.exe bootstrapper to detect the update scenario and display your confirmation UI.
There's nothing built into MSI or IS that allows you to easily change this.
I am having a problem with a Wix installer, that covers three different feature sets (Client / Developer and Server).
When Client is selected the installer does not need to perform any of the actions with IIS that are defined in components that aren't included within this feature.
On Installation I don't get a problem, as I have added a Custom Action
<!-- Only perform the IIS Configuration if we have installed the Admin Application-->
<Custom Action="SkipIISCA" Before="InstallValidate">
<![CDATA[COMPONENT_TYPE = 2]]>
</Custom>
Which is only run when the "Client" component type is being installed. The custom action sets the SKIPCONFIGUREIIS property to 1
The problem occurs when either a Repair on an uninstall is executed on the installer. It appears that IIS Configuration is being attempted when the product is being uninstalled or repaired, and the custom action does not seem be run to disable this behaviour.
Is there a good way to set the SKIPCONFIGUREIIS setting on uninstallation / repair based on a Registry Setting ?
Thanks.
Some of the properties set during an installation are stored in the hidden windows directory, c:\windows\installer - one per installation. In the log of your uninstall/repair session, you can see that cached file opened up and properties being set for the new uninstall/repair session. (Alternatively, you can find this temp file from the uninstall/repair log, and open it with Orca. In Orca, under "Property", it will show the values of any install properties saved).
Based on the above description, I bet that the property that the custom action is being set is not stored, but that the value of COMPONENT_TYPE is available (The same input that was used to set SKIPCONFIGUREIIS in the custom action).
If so, then just make the IIS configuration action be based on these properties:
<Custom Action="Your_Configure_IIS_Action" Before="InstallFinalize">
(NOT SKIPCONFIGUREIIS ) OR (COMPONENT_TYPE = 2)</Custom>
If you don't want the ConfigureIIS to happen for any feature set during uninstall/repair, then just use these properties:
<Custom Action="Your_Configure_IIS_Action" Before="InstallFinalize">
(NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")</Custom>
Another thing to think about is if the original installer was at one level - e.g. a client, and the uninstall/repair is being done by someone at the server level. The component_type of the original install is stored. In that case, you might consider adding a check on how the component_type is determined (thru a dialog or some other attribute) during the uninstall/repair.
Hi StackOverflow team !
I've created an Eclipse RCP desktop application which has an extra menu called 'Help' in the menubar. I didn't create it from any of usual ways like adding actionSets extention, or creating and registering the actions from ActionBarAdvisor.java of the project. I don't need it anymore. Please, suggest me how can i remove it from my Menubar ?
It's sounds like the help UI plug-ins are being included within your run configuration
Couple of things to check...
-- Have a look at your application's .product file, and see which plug-ins are defined, and see if the org.eclipse.help.ui plug-in is defined (org.eclipse.help is probably defined since org.eclipse.ui.workbench requires it, but this won't cause the menu to appear)
-- If you are running within Eclipse, open Run --> Run Configurations, select the Eclipse application you are running and check the plug-ins tab. If it is launching with 'all workspace and enabled target plug-ins' then this will be picking up the help UI plug-ins too. Even if it's not set to this option, check the plug-ins ticked to see if the org.eclipse.help.ui is defined.
This configuration should only use the plug-ins required for your application. If it was created by using the 'Launch an Eclipse Application' option from within the .product file, the configuration created should match the plug-ins defined in that.
It's also worth making sure that no other plug-ins use org.eclipse.help.ui - this can be easily seen by removing it, and then pressing the 'Validate Plug-ins' button within the run configuration dialog, it will show you if anything has been broken after removing it