Windows installer and setup.exe - visual-studio

I've Visual Studio setup project for creating installation for my project. After build Visual Studio create two files: *.msi file and setup.exe file.
MSI file contain all project files, information about destination, registry entries, etc. Setup.exe just bootstrapper for running msi file, but end-user is able run only msi file without setup.exe and program will be installed correctly.
What setup.exe do? Should we run installer only using setup.exe or we can distribute our product without setup.exe?

Yup .MSI version is enough.
Check this other post.
What are the benefits of a MSI installer over a standard setup.exe?
Best Regards

Related

Visual Studio installer project - keep file while uninstall

I am using Visual Studio Installer Projects to generate MSI files, it includes create log folder when it doesn't exist. When uninstall the program, that log folder and files inside will also deleted. Is there a way to keep those log folder and files during uninstall?

How to install redistributable with visual studio setup?

I wish to make my installer (visual studio setup) to install redistributable (Visual C++ 2013 redistributable x86) in case it isn't installed on the PC or install the necessary dll for my program. I don't wish to set a launch condition.
If possible, I wish that the installation of the redistributable to be silent.
Any suggestion ?
That's what the Prerequisites button is for in the setup project's Properties. You'll need to set a configuration (such as Release) before you see that button. That's where you add the VC++ runtimes. That will generate a setup.exe that users run - it will install any of those prerequisites and then install your MSI file.
To make it silent you'd need to get into the manifest file that describes the command used to install the runtime, and change it to a silent command. There used to be a tool called the Bootstrap Manifest Generator that would do that kind of thing, if you can still find it.
There's no support I know of for any of the following, but this is how the VS bootstrapper works, so mangle at your own risk :)
You could open the built setup.exe as a file with Visual Studio and examine the resources - under 41 there's a setupcfg that's the specicification for the prereqs. You'd need to export it, alter it and re-import it.
Alternatively, the template for the standard prereqs that this uses comes from the SDK in architecture-dependent locations such as Program Files (x86)\Microsoft SDKs\Windows\v8.1A\Bootstrapper\Packages\vcredist_x86\product.xml so if you go in that Xml file and find the correct VCRedistInstalled settings and command lines, make it silent, and it should propagate into the setup.exe when you do the build. This is unsafe because a) you've altered a file so that will now not be updated by any SDK updates b) The file doesn't match the one installed by the SDK and there may be installer repair issues and c) Every bootstrapper build will be affected.
You can use Merge modules and add it to your setup/msi which will install quietly

Make installer use local .msi file

I'm using a Visual Studio Installer Project (.vdproj) to create an installer. When built, it outputs an .msi file and a setup.exe file. When I run the setup.exe, it downloads the .msi from the location specified in the "Installation URL" field in project build properties, and runs it. However, if the PC is offline, the download fails and the install is aborted, although the .msi file is present in the same directory as the .exe file. Is it possible to configure the setup.exe to use the local .msi file if present?
In the Visual Studio Prerequisites you should be able to use the "Download Prerequisites from the same location as my application". This generates a directory (a CD image if you like) that will be used to install the prerequisites. It won't install anything from there unless you build the prerequisites that way. Also, you can't just add a framework with the right name because there's a hash check to ensure that the actual prerequisite redistributable is the correct one.

Add custom prerequisites to ClickOnce in VS2010

I have an application (C#, .Net4) which I'm publishing with ClickOnce. I need to verify that the machines installing it have 2 prerequisites, one is an msi file and the other is exe. I've tried the following solutions:
Use the prerequisites option in the project's properties (under Publish) while putting the msi and the exe in the installation directory - no good.
Install Bootstrapper Manifest Generator and following this tutorial, where I have a problem - the build succeeds but with Attempted to access a path that is not on the disk. warnings. It does generate the package.xml and `product.xml files, but the installation size didn't change and it does not install the prerequisites (I've also removed the app and tried to install rather than update).
I'm using VS2010, I'm not sure i this is the reason that BMG does not work.
I'd appreciate your help in solving this issue.
Thanks.
there is no Bootstrapper Manifest Generator for vs 2010 but,
you can use Bootstrapper Manifest Generator for vs 2008 follow this link
http://archive.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=bmg&ReleaseId=1567
after Boot strapper Generate your installation Package you need to copy Package
from Document(your Package)
manual to this location "Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper"
for more information
http://msdn.microsoft.com/en-us/library/ms165429%28v=vs.80%29.aspx

How can I create a Visual Studio Setup Project MSI that can be installed unattended via AD Group Policy?

if i want to install a MSI, created by Visual Studio 2005, via Active Directory Group Policy:
What requirements must be met by the Setup Project?
How can I specify the installation path? Is this a part of the Group Policy setting? Or do I have to create a special "silent install" version of the MSI?
Thanks!
I found out that it is possible to specify the installation path with a custom property called "TARGETDIR". The unattended installation can be tested with:
setup.msi /passive TARGETDIR="C:\whatever"
There is a command MSIExec that installs MSI installers automatically. This command is what you would use with the Policy. Any MSI should be compatible with it.
You have a number of options for building installers going with Microsofts default setup projects or something more verbose like Wix.

Resources