Do MSIs contain a checksum? - deployment

I'm writing a utility to deploy some MSIs on remote machines. Do MSI files contain a built-in checksum that will be checked when they are run, or do I need to write something to check that they have been downloaded OK? The MSIs will be created with WiX if that makes any difference.

Digitally sign the MSI and you'll know if it's valid or not.

Related

How to know what silentArg to use when creating Chocolatey packages?

How do I find out what silentArg I need to use for creating a Chocolatey package?
I know that each installer will have different silentArgs but I just don't know where I can find which one has which. Also, I am using strictly .exe files (embedded too).
You'll have to work with the documentation/support provided by the software maintainer, but I'll provide some suggestions here.
Typically, MSI installers support the same silent installation parameters (many will simply work with /qn), but sometimes an installer might support additional variables or an input file you must provide.
EXE installers are a free-for-all, unfortunately. It depends on what parameters are coded into the setup program to support, even for the setup.exe installers that call another MSI. Depending on what built the EXE installer, you might be able to try some common options. The following techniques are suggestions to get you started on de-mystifying different common EXE installers:
A setup.exe that extracts and runs MSIs might be able to have the MSIs extracted and run on their own, but this is likely unsupported by the software maintainer. You will need to test this on your own per package to know if this approach will work.
Nullsoft Installers typically support a common array of options that can be used to deploy your application.
InstallShield Installers typically support the /S parameter along with an answer file, but you would still need to work with the software maintainer or read the software documentation to know what to put in the answer file.
As I've mentioned in other answers, the best thing you can do here is reach out to the vendor or software maintainer and ask for a deployment guide for that software, or at least documentation on how to silently install.

Is it possible to use InstallShield to install more than one .exe files?

I have completed a project on VisualStudio and I have built the .exe file of this project. I wanted to make an installer that will include this .exe file as well as the postgreSQL and perl executable installers because my VB application relies on them to work. So I assume that if I want it to work properly on every windows-based PC I have to include those as well.
Is there a way I can include those 3 .exe(s) in a single setup (let's say .MSI file) and if yes what are the steps required to do so?
Thanks in advance!
Regards,
George.
An MSI shouldn't ever run an EXE installer. For that scenario you need what's called a bootstrapper / chainer. The two are similar except that boostrapper is things that must be installed before your MSI ( like Windows Installer itself ) and chainer are things that get installed along with your MSI.
InstallShield has two features for this. Setup / Feature Prerequisites and Suite Installers. Both can be used to chain together any number of EXE and MSI installers.
For more information see:
Using InstallShield 12 to Install .NET Framework 3.0

How to deploy classic asp website?

I would like to know how to deploy or what are the steps that are involved to deploy a classic asp website in IIS 6/7
Can we create an installer for the existing project?
You should consider using Web Deploy http://www.iis.net/download/WebDeploy, it can deploy your ASP applications, setup the IIS application and other settings (like APplication Pool, etc), and even include COM objects, Registry keys and more.
Even better you can parameterize content like Connection Strings, Title, settings, so that at install time you can pass those paramters either through the command line or the User Interface.
It can deploy between IIS 6 and IIS 7 and even help you compare existing deployed versions with packaged versions (zip files), or other servers.
Make sure a virtual directory has been set up in IIS.
Copy all files into the virtual directory
If applicable, register required DLLs with regsvr32.exe
Run.
Hope this helps.
EDIT: I see you want to make an installer for the application. Have a look here for a guide on how to do it. To my knowledge there isn't anything that is "plug and play" for installing your project; you will have to make it.
Copy the files to the virtual folder. If you have any depending dll's or exe's make sure to install them too.
As you said you may have to create an installer that will do this works to you. There is a lot of installers out there, like Inno Setup and Windows Installer.
If its just ASP and you have no DLL's or COM Components then you would just have to copy all the files to a Virtual Directory under approot or wwwroot. XCopy copies all directories, subdirectories and files. As for an installer, you wouldn't really need it but it would be useful if you make one that sets up the virtual directory, copies the files and configures any host headers if needed.

Making installation files

I need to make installation file (.exe), but is that possible with batch script and how?
I made installation with some software (Deployment...) but I need to do that with script. I have all necessary files for my installation.
Is that possible?
Marko
Virtually every tool for building installation packages provides ability to include arbitrary sripts to the installation process. Just inspect your tool for this capability...
Here, we often include sripts in our WIX installations. Of course, user expirience is better when you building installation package nativelly, but in some cases this is acceptable practice (mostly when there is no non-tech users planned).
With a batch script, you will not be able to make a .exe (unless you call a .exe creator from within the batch script!). Why not try Inno Setup or NSIS? ISTool helps in creating Inno Setup scripts with ease and speed.
You can't make an .exe using nothing but a batch script. You can however use a batch script to create the installation specification file(s) and then run that file through an installer creator program like the ones mentioned in the other answers here. Perhaps you could be a bit clearer about what you actually need to do?

Why do so many programs have both a setup.exe and a setup.msi?

I have always wondered about this. So many application setups have a zip file that you unzip, and in it are a bunch of files, among other things an exe and an msi. What is the difference? They are often even about the same size. I am never really sure which one to execute, sometimes I do the exe and sometimes the msi, and it usually works with either one. But does one of them do anything that the other doesn't do? And if not, isn't it kind of a waste having two files that does the same thing? Especially when thinking about download size, etc...
Not sure if this should be here or on ServerFault, or maybe neither, but I figured since developers usually are the ones creating setup files, then developers might know why this is like it is =)
In the case where you have both exe and the msi the exe is just a loader for the msi. If you have an installation supporting multiple languages then the exe applies a language transform (mst) on the msi before installing.
You can consider the exe as a wrapper around the msi. The msi file may or may not be given separately. The reason why people give the msi file too is to facilitate a group policy installation (in a Windows Active Directory infrastructure) as you can only push down installations of msi files and not exes.
The setup.exe is a wrapper for the MSI, but it is not only a wrapper.
The setup.exe can rely on a setup.ini to define parameters
The setup.exe checks for the Windows Installer (a MSI cannot be installed otherwise)
The setup.exe can check for frameworks, like the .NET framework. The developer can pick one of those defined in C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages (for Visual Studio 2008). If it is lacking, it will try to download it from http://www.microsoft.com/
The setup.exe can be reconfigured with msistuff.exe
The actual installation is done in the MSI. As Prashast said, the exe is just a wrapper, but the reason for having the exe, is that an exe is allways possible to run. If the user do not have MS Installer installed on the computer, or his version of MS Installer is older than the version required by your installation, then the MSI file is not possible to run.
The exe provides automatic installation of MS Installer (including some question to the user if he/she wants to do this) before running the MSI file. In most cases, the install packages needed for Microsoft Installer is included inside the setup.exe, or sometimes it is just the prerequisites check with a link to download the installation from Microsoft.
In very basic words,
you can deliver just the .msi file and it will install. but .exe will not work without the .msi