How to add msi file to Installshield Project? - installation

I am using Installshield 2015 with Visual Studio 2013. I created a setup.exe for my application. In order to start my application, user needs to run SpeechPlatformRuntime_x86.msi or SpeechPlatformRuntime_x64.msi.
How can I add these msi file into my project so after installation finishes, it automatically run msi file?

These sound like they provide dependencies. Since you deliver a .exe file, I would suggest creating a prerequisite and including it in your project. This will result in them being installed first, and your main .msi (or InstallScript) project contents will follow.
(If you delivered only a .msi file, you would probably have to document your dependency. You could look into the Chained .MSI Packages support, but it's not really that well suited for handling dependencies.)

Related

Visual Studio setup project confusion with two setup files?

After compiling a Visual Studio setup project: there are two files produced: application.msi and setup.exe
If I run application.msi, the new version is not rewritten to the old version. It is likely to run setup.exe for all of the cases. That made confusion if I give two files to the clients. How can I made just one file?
The Setup.exe file is a BootStrap file used to check for the prerequisites that you setup in your Setup Project's Prerequisites Dialog. The MSI package itself is what determines the applications installation parameters. You should have Remove Previous Versions as true and make sure that your application's Assembly version has been incremented by at least the Build Number, otherwise if you are updating only the Revision number it will not be over written. The Assembly Version information Format is as follows. Major.Minor.Build.Revision. Make sure that you also change your setup projects Version number also.
You can package the MSI with setup.exe into a single self-extracted archive and launch setup.exe after it's unzipped.

Visual Studio Setup project - force installation of a .DLL?

I have an update to third party .DLL that must be installed onto my clients' computers. We currently employ automated installs via MSI that are created in Visual Studio 2010
Unfortunately, the third party .DLL was versioned incorrectly and file version of it was not increased by the provider (they only increased assembly version). The third party provider is Microsoft, so waiting on them to fix the issue is not realistic. We need to get the new .DLL to people now and within one MSI update. Right now, MSI update is not overriding the .DLL
Is there a way within VS2010 Setup project to force override a .DLL even if the file versions match?
If you are willing to do msi postbuild tweaking you can hit the File table and do "version lying". Another thought is to not put that DLL in your install. Find an installer from Microsoft ( if it exists ) that you can put into a bootstrapper or create your own installer and use AMUS instead of OMUS for the version rules.
Can't you just add the file to your installer as a 'file' and install it with the other files? Don't set it as project output, or any of the canned install actions. Go to the file portion and right click the "Application Files" folder, and say > add file. Navigate to the file that you want and choose it.

Why Visual Studio creates .exe installer files?

when I build solutions in Visual Studio, that generates installer files as .exe and .msi, .exe files are useful for what?
The .EXE file that is created by the installer project is a bootstrapper for the .MSI setup file. It is used to launch the .MSI setup file.
Generally, both will launch the setup program and allow the user to install the application. However, sometimes the setup.exe file will run a custom validation routine to determine if the user's computer meets the minimum requirements for installing the software.
For example, if the user does not have Windows Installer, they will not be able to launch the .MSI file, but the .EXE application will still run and inform them that they need to install Windows Installer first. For .NET applications specifically, the .EXE file verifies the presence of the appropriate version of the .NET Framework, and if it is not present, it prompts the user to download and install it.
You can customize the prerequisites that are required for your application in your installer project using Visual Studio. See these MSDN articles for details on how to do that:
http://msdn.microsoft.com/en-us/library/ms165429(v=VS.100).aspx
http://msdn.microsoft.com/en-us/library/7eh4aaa5(v=VS.100).aspx
Others have commented on the how (.exe bootstraps the .msi) but part of the reason why is that users know that .exe files are the things you run. I don't think your average user knows that .msi files are something that you can click on to install an application.
The .exe file is made for installing the prerequisites of your application.
Let's say your application uses the .Net 3.5 framework, you can tell the installer project to include the installation of the needed libraries if they're not already installed.
You may also deactivate it, so only the .msi is being created.
This page shows how to activate and configure the prerequisites setup, just uncheck the checkbox in order to deactivate it.
You also find more details on the process of Bootstrapping on MSDN:
the capability to automatically detect
the existence of components during
installation and install a
predetermined set of prerequisites
.exe files are useful for executing your programs that you've just built in Visual Studio, assuming you're not doing web applications.
Pretty much every Windows program out there is executed using files with an .exe suffix.
Installer exe files are normally just the msi wrapped in a bootstrapper. The bootstrapper can do anything, but normally its purpose is to ensure the user is running a sufficient version of Windows Installer, then extract the msi and invoke msiexec.exe to start installing the msi. Generating installers as exe's is deprecated these days, but some still do it.

Re-packaging installer with WiX Visual Studio Project

I've noticed that if I change the files that get installed by my WiX installer, but not the wxs file that the installer is built from, that when I tell my installer to build, it doesn't. In other words, unless I've made a change to my installer itself (currently I do this by just adding a space to the file), it doesn't create a new package.
Is there a way to tell my WiX project to build a new msi file every time? Something less hackish than modifying the wvs file in an insignificant way, or creating a pre-build action that deletes the old msi file?
Perform a "Rebuild" instead of just a "Build", of the WiX project.

Creating setup project with single output file (Visual Studio 2005)

I'm using visual studio 2005 Setup project to create an installer for my application.
The outputs of the setup projects are:
- Setup.exe (a bootstrapper which makes installed .Net framework if it doesn't exist)
- .Net framework folder (for installation by the .exe above)
- .msi installation for my project (called by the setup.exe)
My question is:
Is there any way I can have a single .exe (or msi) installation which makes the entire
installation (and encapsulates all the functionallity menationed above) ?
It seams that the Visual Studio installer doen't let you create a single installation file.
I finally decided to use Win-Zip self extractor to create a single installation file which extract all of the above files and run the setup.exe
I'm currently using visual studio standard setup and then combining the exe and msi with Make SFX since it supports command line (for automatic builds) and is free.
SFX Compiler is a free program that will create self extracting .exe files for you.

Resources