I have a installshiled project which generates setup.exe file. I'd like to enable silent install by generating proper setup.iss file. I ran the following command:
Setup.exe /r
which lunched the installer, but it never created the setup.iss file. I looked in C:\Windows as the documentation suggested, as well as some other locations (local directory, program files etc.)
Why isn't it created and how to fix?
Thanks,
Ok I found the problem, and a workaround:
The problem was that my msi project was a Basic MSI Project, as opposed to InstallScript and InstallScript MSI projects. This kind of project does not support reading a response file (aka setup.iss). However, there is a way to perform silent installation for the .msi / setup.exe file:
Setup.exe /s /v"/qn"
will do the trick.
All of this information can be found here
Another option is to explicitly state where you want the setup file generated, using the /f1 option:
Setup.exe /r /f1"C:\your\path\here\setup.iss"
Documentation on this can be found here, but here is a summary from that link:
Using the /f1 option enables you to specify where the response file is (or where it should be created) and what its name is, as in Setup.exe /s /f1"C:\Temp\Setup.iss". Specify an absolute path; using a relative path gives unpredictable results. The /f1 option is available both when creating a response file (with the /r option) and when using a response file (with the /s option)
Related
I have an InstallShield project which consists of two files and several folders,
MainSoftware.exe
AuxSoftware.msi
FolderA
FolderB
etc...
The main purpose of the project is just copying all of these files in the path specified by the user. It is very simple. However, after copying AuxSoftware.msi in the destination path, I need that a silent installation begins with this file. I know that a silent installation can be run by the following command:
msiexec /i AuxSoftware.msi /qn
But I don't know how to tell InstallShield that this command must be executed in the destination path after copying AuxSoftware.msi.
Could you please help me?
Thanks in advance
You can only execute one installer at a time once it is in the InstallExecuteSequence. Stein has a very good, brief explanation in the answer here.
I would suggest using a bootstrapper (setup.exe) that can install them in sequence.
Thanks for your suggestions. I found a way. They call it "nested installations". I created a Custom Action having the second .msi or .exe installer I want to run after a specific point in the process of the main installation.
I am trying to create a setup that installs other programs on a desktop.
one of these files is a msp file and i run it like a normal exe file.
I have tried to open it like you would an msi file with no possitive result.
Can anyone help?this is how i currently try to run it.
this is the error i receive its in dutch but a rough translation is "cannot open this installation package. contact the provider of the file or check if it is a valid windows installer package.
Sorry it took a while , but i fixed the bug.
I used the msp file as an msi file.
I used the wrong parameter you need to use /p instead of /i
I've been given a silent install from a 3rd party (made with Installshield) I need to include as part of the project I am working on at the moment.
I've got it all working right up until I burn it to a DVD and attempt the install.
Installshield in silent install mode writes a log file to the same directory as setup.exe. Being on a DVD this is a read only folder.
I see I can change the default location of the log file using a command line switch, but is there a way to make it not create one at all?
I struck the same problem. I tried:
Setup.exe /s /f2null
And I couldn't find a log file anywhere afterwards...
For each setup.exe that build by installsheild, you can use f2"logpath" parameter to specify the log file in your own script.
If 3rd party "setup.exe" creates a log automatically - the easiest solution it redirect this log to %temp% directory.
I am building a plugin for NSIS with VS 2010 and I would love to set up the project so that a test setup is automatically built from a simple NSI file.
All seems fine except I can't figure out how to make NSIS look for my plugin in my project's output folder instead of C:\Program Files (x86)\NSIS\Plugins\*.dll only.
Are there any commands I can put in my NSI script to make NSIS look for my freshly built plugin outside of "standard plugins folder"? It seems rather odd to have to copy my DLL each time I wanted to test it.
Any help is appreciated.
You can use !addplugindir directive, see nsis compile-time commands.
Use !addplugindir directive with defined symbol (/D on command line).
Symbol is "the path to your location of .dll file"
For VS 2010 is the best option to use Visual & Installer - free VS addin for developing NSIS installers directly in Visual Studio.
Set your symbol in Project properties:
Download here: www.unsigned-softworks.sk/visual-installer/
As others have mentioned, the !addplugindir directive in your NSI script file will do the trick, and you can define a variable to pass to that directive on the command line using /D.
As for the code to add to your NSI file, you need something like this:
!ifdef EXTRANSISPLUGINSFOLDER
!addplugindir "${EXTRANSISPLUGINSFOLDER}"
!endif
Then on the command line, you can call your NSI script like this:
makensis.exe /DEXTRANSISPLUGINSFOLDER=C:\somefolder\moreplugins\ YourInstallerScript.nsi
When defining the extra folder, you might find that having any spaces in the folder path causes problems, and using quotes around the path doesn't help. To work around this, try using the dir /x command in the Windows terminal to list the 8.3 DOS names for the folders with spaces in their name. This will help you build up a folder path that doesn't contain spaces. (eg C:\Program Files\ often becomes C:\PROGRA~1 when listed with dir /x from the root of C:)
May have missed the point here but could you not have used an XCOPY post build event to copy the output to the NSIS plugins directory?
I have inherited some InstallShield InstallScript projects.
I am currently using InstallShield 2009.
I cannot seem to create a log file when I run the setup.exe.
What command line options do I need to specify?
InstallShield has a method for creating a log file for the Setup.exe and Update.exe bootstrappers. You can simply use the /debuglog parameter from the command line when you run Setup.exe. This command line parameter can be used with the Setup launcher for Basic MSI, InstallScript MSI, and Web projects.
Here it is:
Setup.exe /debuglog
You will notice that a file called InstallShield.log has been created in the same folder as Setup.exe.
For more read >> http://www.installationdeveloper.com/686/using-log-files-in-installshield/
There is no such feature in InstallScript project types. The really good logging is in MSI project types. InstallScript really only has the ability to record a response file and generate a very terse logfile as part of a silent install. (/s /f1 /f2 arguments)
Setup.exe Command-Line Parameters
You can add registry settings which will tell Windows Installer to log your installation.
The registry settings you'll need are:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer]
"Logging"="voicewarmup"
"Debug"=dword:00000007
Once you run the installation, navigate to %temp% inside windows explorer and there will be .LOG files with a naming scheme of MSI#####.LOG.
NOTE: This should log all installations on your machine, so you may want to delete these registry settings when you're done.