Answered by:

VC++ vcredist_x86.exe parameters

Question

Is there a reference guide for vcredist_x86.exe parameters? I've created an installer that runs it optionally (user activates a checkbox) depending if the user has it already installed, it opens the graphic interface that is not really a problem but if it is already installed comes the problem, it asks to repair/uninstall/cancel and most end-users don't know what to do. The same happens if I want to uninstall my program, currently it executes again the vcredist so it asks for repair or uninstall and I want it to uninstall transparently without asking the user or require to make 3 or 4 extra clicks.

What I want is when I install my package the vcredist is installed without asking the user and if already installed to do NOTHING, I mean not open the repair/uninstall window.

When uninstalling there's no problem at all, since the vcredist "may" be used by another application so the user can choose to repair, uninstall or cancel. I keep the vcredist_x86.exe in my installation tree because if for some reason/error the user uninstalls it from the control panel they can reinstall it without installing back my whole package, they just run it again.

My main doubt is if exist some reference for vcredist_x86.exe parameters to adjust them to my installer... I've found posts regarding quiet and silent installation that show a full command line that should be copied, but not a reference of which parameters are available and the syntax to know all the available options and how to use them.

All replies

So it should be enough to setup the quiet or silent installation and the user will not be prompted with repair/uninstall question? I don't want the user to worry about this, just to click next and finish... another option is to tell the user to install vcredist before my package but it would be more comfortable to install just one package with no extra questions if it is already installed.

Well, that's a matter of opinion. My advice is that it is better to statically link the application. It trivializes the installation, and then one doesn't need to install the redistributables at all. That is even safer.

[...]I've found posts regarding quiet and silent installation that show a full command line that should be copied, but not a reference of which parameters are available and the syntax to know all the available options and how to use them.

Open a cmd window in the directory where vcredist_x86.exe exists and type vcredist_x86.exe /?This should give you a reference of which parameters are available.

Statically linking everything tends to make applications much larger than needed. The DLL model was developed to relieve bloatitus.

...and installing vc_redist_x86.exe installs all the bloat that would otherwise be part of the application, plus more.

My point is that your claim that vc_redist_x86.exe be installed and "should not be optional" is not sound advice. Better to point out all the options and let the OP decide which is best.

While your overall point may be valid (point out all the options), your supporting logic simply dismisses the argument. The point you were arguing against is that the dynamic dependencies only need to be installed
once and used by any who needs it. This saves bloat since otherwise,
every application that needs it would need it statically linked in. So for your argument to have any merit, the likely use of these dependencies would be that they would only be used by
one application on the system, not many.

The practical reality is that these common dependencies would likely be used by more than one application; thus by using the dynamic model, the bloat is reduced.