InstallShield silent install CR Runtime 13.0.17 - installation

Hi, I create a Setup with Installshield 2015. my setup has a prerequisites for reporting viewer so i want to install CR_Runtime13.0.17.msi silently. for this situation we want a command to start the cr_runtime setup silent, after many searches on the net i found this command.
msiexec /i IsSetupPrerequisites\CR_Runtime13\CR_Runtime13.0.17.msi /qb /norestart
when i use this command on Cmd it works well and setup is begins silently with progress bar but when i use this command on installshield, it show me an error and a help every time.
please help me to create a command for installshield to install cr_runtime13.0.17 silently.
at the end i Attached installshield command page and my help to this Question.
Many Thanks to all

The Specify the command line for the application value is really just the arguments. From Specifying Command-Line Parameters for an InstallShield Prerequisite:
Type any valid parameters for the file that is selected in the Specify the application you wish to launch list. Do not include the name of the file in this box.
Remove your inclusion of msiexec and an attempted relative path to the msi, leaving you with just /qb /norestart, and you should avoid the msiexec error. If that one still gives you problems, consider replacing /norestart with REBOOT=ReallySuppress.

I had to create a prerequisite for .net 4.6.1 and it worked silently when I had only /q /norestart in the command line and command line for silent mode.(instead of /qb /norestart)

Related

Running MSIEXEC in a NSIS script with installer switches

I'm trying to build an NSIS installer and package it with necessary drivers (MSI files from the vendor). Eventually, I'd like to install these drivers silently in the backgroud. However, I cannot seem to get it working properly.
In my NSIS script, I have the following:
ExecWait 'msiexec /i "$INSTDIR\Flash.msi INSTALLDIR="$INSTDIR\Drivers\Flash""'
It seems to execute; if I remove the INSTALLDIR switch from the above snippet, it'll run the driver installation as expected. But when I leave it in, I'm instead greeted by the following window
However, running the following directly in Powershell does exactly what I want, sets the install directory appropriately, as expected:
.\Flash.msi INSTALLDIR=".\Drivers\Flash\"
I'm guessing it's a silly quotation-mark mismatch somewhere, but I've tried so many already and I get the same results.
Your doublequote for the .msi path is closed too late.
Use
ExecWait 'msiexec /i "$INSTDIR\Flash.msi" INSTALLDIR="$INSTDIR\Drivers\Flash"'
Have you tried the following:
ExecWait 'msiexec /i "$INSTDIR\Flash.msi INSTALLDIR=$\"$INSTDIR\Drivers\Flash$\""'
or
ExecWait 'msiexec /i "$INSTDIR\Flash.msi INSTALLDIR=$\"$\"$INSTDIR\Drivers\Flash$\"$\""'
Reference: http://nsis.sourceforge.net/Docs/Chapter4.html and take a look at the Strings section under 4.1 Script File Format.
Updated with extra escaped quotes.

Passing config file to MSI as argument and need to use it by Custom action with Silent Installation

I have created Basic MSI Project for creating installer for my project in Installshield 2014 and it is working fine. I have also created a custom action to execute my exe file while installing the application.
Then i create a Silent Installer using (/s) command line argument. I want to pass the Config file to my MSI setup and one of my Custom Action exe file need this Config file to setup basic project setup.
e.g
Installer.msi /s "c:\project\config.txt"
How to pass this config file parameter to my exe as command line argument?
I have searched in google and existing questions also. I didn't get way to do this.
Till now i didn't get any way to do this. Please anyone help me to do this.
Thanks in advance.
You can pass values to your MSI by command line. This is one way to pass values straight into your MSI, another way is using a transform to modify the MSI. See this answer: Using msiexec.exe custom command lines, or using transform files.
As far as I know there is no limit to how many values you can pass by command line:
msiexec.exe /I "C:\Install.msi" /QN /L*V "C:\msilog.log" STARTAPP=1 FIREWALLRULE="Long string here"
Quick explanation of command line above:
/L*V "C:\msilog.log"= verbose logging
/QN = run completely silently
STARTAPP="1" = Your property indicating the app should be started after install
FIREWALLRULE="Long string here" = Your firewall rule to apply via a custom action
Yes, Glytzhkof is right.
According to your question, you are free to "invent" an own property e.g. CONFIGFILE and pass on the commandline something like CONFIGFILE="C:\myconfig.ini" or something similar.
If the path is always the same (e.g. in SOURCEDIR), you can avoid the whole path and add it in your code, but don't rely on the source for a patch (.msp) for example.
I am not sure if I understand, what you mean exactly with "silent installer".
You can call every msi setup with the parameter "/qn" (or "/quiet") silently. The "/s" parameter does not belong to MSI, but is more common for setup.exe files (bootstrappers) or InstallShield script projects. Of course you can combine a bootstrapper with a MSI called.
For example, using the InstallShield built setup.exe could be something like:
setup.exe /s /v "/qn CONFIGFILE=myconfig.ini"

MSI installation quietly with default values

I am writing a powershell script to uninstall and install a product. Uninstallation and installation process is just clicking on several next buttons with default values populated.
Could you please suggest how to install the MSI file without prompting user for clicking on several next buttons and complete the installation process very quietly.
If I wanted provide customized values during the installation, what could be the process to find out the property names and how to run it silently. Please refer to any references to explore further.
I am using powershell 2.0 and please let me know if further information is needed. Thanks in advance.
Regards,
Kumar
To install a .msi file silently, you should be able to use the /quiet switch with msiexec.
If you need to customize anything, you can set property values like this: PROPERTY=Value
Altogether:
msiexec /i C:\Path\To\File.msi /quiet PROPERTY=Value
To see all the options, just run msiexec without any parameters.
This question is also very similar to yours.
You can do this only if the MSI helps you :). For example, if a property called SERVERNAME is set to FRED in a dialog, then you could say SERVERNAME=FRED on the command line. This assumes that the InstallExecuteSequence that does the work of the install uses just the value FRED. Problems occur when the UI sequence does extra things that won't happen in silent mode because the UI sequence doesn't run in a silent install. If the UI sequence dialogs change SERVERNAME by (for example) adding \ to the front and \MyShare at the end and \FRED\MyShare is used in the execute sequence then you need to know set the command line to SERVERNAME="\FRED\MyShare" because that's what the execute sequence expects. If you don't know all the potential relevant property values you could run the install in UI mode with a verbose log and see them. So in the absence of documentation for silent install you need to reverse engineer it a bit.
If you want to specify what features are to be installed then use ADDLOCAL=comma separated list of feature names.
The basic command line for running silently is (paths truncated):
msiexec.exe /I "C:\WiX.msi" /QN /L*V "C:\msilog.log" MYPROPERTY=1
You can also apply a transform (see explanation below):
msiexec.exe /I "C:\WiX.msi" /QN /L*V "C:\msilog.log" TRANSFORMS="C:\Wix.mst"
/QN: run silently, no GUI during or after the install
/L*V: write verbose log file with all information
MYPROPERTY: set a property at the command line. You can set multiple.
The way an MSI file is supposed to be modified for corporate use is to use a transform file (*.mst).
This is a little "database snippet" that can change the MSI file (which is a database) once applied to it during runtime.
A transform can literally change anything in the MSI, but most often it is used to adjust small things such as removing shortcuts, eliminating undesired runtimes, etc...
A transform is applied to an MSI on the msiexec.exe command line by adding the keyword TRANSFORMS followed by the path to the *.mst file.
You can also uninstall MSI files in a variety of other ways (besides the msiexec.exe command line). Here is a rough guide for how to uninstall MSI files. It includes information on how to uninstall with PowerShell, WMI, VBScript Automation, etc... And there is another post on serverfault.com on the issue of avoiding the use of msiexec.exe to prevent unwanted dialog boxes from popping up during automated runs.

msiexec does not pass parameters from the command line

I was trying to use MSI installer to install this file myInstaller.msi and also pass the value "192.168.2.1" to IPADDRESS, which is mandatory on the process of installation. However, it comes up an error message "install failed". I checked on Windows, the application is installed, but it's not on Windows Services, where it is supposed to be.
msiexec /i myInstaller.msi IPADDRESS=192.168.2.1
I also have read this link msiexec does not pass parameters to custom action. There is comment saying that installing ORCA and then editing the MSI file, it should work, however, after I have deleted cut row containing CustomTextC_SetProperty_EDIT1, and then saved the MSI file, it seems it's broken, it can not even run, the file is damaged.
Any help for this? I have been working almost 2 days trying to work it out, but can't. :-(
I'll try to answer with a potential quick fix rather than a long explanation:
Open an unharmed copy of the MSI file with Orca
Add to the Property table:
Property column: IPADDRESS Value column: 192.168.2.1
Then add IPADDRESS to the delimited list in SecureCustomProperties. See image below
Save and close, and run the MSI
Open an elevated cmd.exe prompt (search in start menu for cmd.exe, right click and run as administrator)
Install with command line (modify with your own paths): msiexec.exe /I "myInstaller.msi" /QN /L*V "C:\msilog.log"
Check results, and report here what you find. Most likely there is something else wrong, but this will bypass most other error sources.
I do not recommend this approach as anything but a quick test.

How to pass command line arguments to InstallShield debugger?

When running the InstallShield X debugger I can't find a way to tell it to run silently in order to debug a silent install.
The debugger seems to run the equivalent of a "setup.exe" command line which displays the GUI, but I want "setup.exe /s" which takes input from setup.iss.
Is there a way to specify command line parameters for debugging?
There are multiple ways to start the InstallScript debugger. You can start it from the InstallShield IDE, which is what I expect you're doing. Or you can start it from the command line of your setup with /d. Mix the /s and /d together, and you should be able to debug the silent case. Or if this is an InstallScript MSI, you may also want to set certain MSI properties to enable debugging of custom actions.
See Setup.exe and Update.exe Command-Line Parameters for details, looking at the Debugging section which describes both /d and /v"ISSCRIPTDEBUG=1 ISSCRIPTDEBUGPATH=\"path-to-Setup.dbg\""

Resources