Bootstrapper Manifest Generator – How To Setup Custom Pre-Requisites

Edit March 2011
I have just done a newer version of this page, with pictures, you may want to check it out here
BootStrapper Manifest Generator (2008) – How To Guide v2

Original Post Feb 2008 Continued…

Recently I was attempting to create a deployment package that has customised pre-requisites i.e I wanted my installer to detect if AJAX Extensions 1.0 was installed and if not ask the user to install it.

I found this link talking about how to do it..

http://www.codeplex.com/MSAjax10SetupPrereq

Which lead me to download the Bootstapper Manifest generator from http://code.msdn.microsoft.com/bmg

I was a bit lost with what to do so hopefully this will save you the pain I went though.

(Note: the BMG is really buggy. Most of the system checks don’t work, and once you add a file system check and save your project you can no longer open your bootstrap project. But given it is free it’s better than attempting to write the XML by hand)

As an example to create a pre-requisite for AJAX follow these steps:
  1. Run the BMG tool.
  2. Create a new Package Manifest. Give it a name, AJAX
  3. Add a file, choose the AJAX Extension installer .msi.
  4. Give it a name, this will be the name that appears in your installer so make it something nice like “Microsoft ASP .Net 2.0 AJAX Extensions 1.0”
  5. Build it.
Now if it builds have a look at the location that it is written to, it is a visual studio directory, so I thought to myself it must integrate with VS2005.
So open your Setup Project in visual studio, (in my case, a Web Setup Project). Right Click — Properties on the solution. There in the bottom right is the pre-requisite button.
Click on it and you should now see AJAX as an option.
Traps for young players
1. Copy paste
Inside the BGM copy and paste does not appear to work. The trick, is right click in the field and choose paste.
2. Download from web Option
If you want to download from the web enter the url for the .exe. I setup my own publicly available spot to allow downloading these pre-requesites (rather than relying on the microsoft download site), as they might change things. So I have a known static location to go download the AJAX Extensions msi.
3. System Checks
You should include a check to see whether AJAX is already installed.
In your manifest click on the file you added, and go to the “System Checks” tab. I found that most of the system checks did not work properly.
I found the one that did work was a file check, so I added a file check for System.Web.Extensions.dll in the default location
  • Add a File check. Set the file name to System.Web.Extensions.dll, turn off the search, and enter the default path to the ASP Net folder.
  • Switch to the “Install Conditions” tab and add a line that says:
    • Type – By Pass If
    • Property – AJAX (or the name you gave your system check)
    • Comparison  – Exists

Cheers and Good luck

12 thoughts on “Bootstrapper Manifest Generator – How To Setup Custom Pre-Requisites

  1. I am creating an installation package where I need check for prerequisites needed to install for my application. It is a windows application. I achieved this through Bootstrapper manifest generator in .net set up project using prerequisites dialog.
    But after I build project I am getting two out put files in debug folder – 1) .EXE and 2) .MSI . When I am trying to set up the product through .exe it is checking for prerequisites but it is not happening with MSI package.
    I want to check prerequisites through MSI Package only can you please help me with this .

    Thanks in advance,
    Prasad K

  2. Guyss i followed the same procedure for installing silverlight through this boot strapper manifestor. After creating the exe through the windows installer, i ran them it asks for my silverlight exe…whihc finds it and installs my silverlight successfullly. But it does not go forward installing my actual application.

    This is for log file generated.

    *********************************************************************
    Running checks for package ‘Microsoft Silverlight 2.0’, phase BuildList
    The following properties have been set for package ‘Microsoft Silverlight 2.0’:
    Running checks for command ‘ThorImagesilverlight.2.0.exe’
    Result of checks for command ‘ThorImagesilverlight.2.0.exe’ is ‘Install’
    ‘Microsoft Silverlight 2.0’ RunCheck result: Install Needed
    Installation of components ‘Microsoft Silverlight 2.0’ was accepted.
    Copying files to temporary directory “C:DOCUME~1ThorlabsLOCALS~1TempVSD167.tmp”
    Copying from ‘\vafs01PublicEngineeringSoftwareNightlyBuildsReleaseThorImagesilverlight.2.0.exe’ to ‘C:DOCUME~1ThorlabsLOCALS~1TempVSD167.tmpThorImagesilverlight.2.0.exe’
    Verifying file integrity of C:DOCUME~1ThorlabsLOCALS~1TempVSD167.tmpThorImagesilverlight.2.0.exe
    WinVerifyTrust returned 0
    File trusted
    Running checks for package ‘Microsoft Silverlight 2.0’, phase BeforePackage
    The following properties have been set for package ‘Microsoft Silverlight 2.0’:
    Running checks for command ‘ThorImagesilverlight.2.0.exe’
    Result of checks for command ‘ThorImagesilverlight.2.0.exe’ is ‘Install’
    ‘Microsoft Silverlight 2.0’ RunCheck result: Install Needed
    Verifying file integrity of C:DOCUME~1ThorlabsLOCALS~1TempVSD167.tmpThorImagesilverlight.2.0.exe
    WinVerifyTrust returned 0
    File trusted
    Installing using command ‘C:DOCUME~1ThorlabsLOCALS~1TempVSD167.tmpThorImagesilverlight.2.0.exe’ and parameters ”
    Process exited with code 1511
    Status of package ‘Microsoft Silverlight 2.0’ after install is ‘InstallFailed’
    ****************************************************************************

    any help will be highly appreciated

  3. This response might be a little late, but what you have to do is uninstall the Bootstrapper Manifest Generator, and reinstall it. I had the same issue and this way is fixed now. Looks like this program has a lot of bugs and is not really estable.

  4. i followed the same procedure and add one windows application exe as a extra added exe in package (package). Then successfully add the package from perquisite of set and deployment project. And build the project and run the setup.exe but that extra added exe is not run before the actual set wizard.

    thanks in advance…

    1. I suggest that you make sure you system checks are correct. I found that the system checks worked best when performing a file check. So find the default install location of your .exe and add a file system check for the fully qualified path to the exe. Once you get that working maybe use %Program Files% environment variable in case they install to a different drive?. Basically you .exe install won’t be firing if it thinks it should by-pass if the check passes.

  5. sry one thing is missing that is
    that exe process is running in background that we can see it in task manager process list, means that exe is in running mode but the interface we can not see or an operate.

    datta…

    1. That is probably beyond my pay grade. I would suspect it is a permissions thing. Firstly is the .exe process showing up running under your user account or another? If its under another user, then obviously the UI is actually trying to render for a different user other than yourself. Check the properties on the exe you are calling, sometimes they have the “Block/Unblock” setting so it could be prompting for a permission that you are unable to see. Can you run the .exe with command-line switches to test if you can force it run-as a particular user or do an unattended installation. What about the OS? Vista and Windows 7 have tighter security, try it on XP and see if it works. Try running the setup.exe as administrator? Good luck and let us know how you go?

  6. Do you think it works for .net 3.5 ? becaus VS displays an error if i want to add it to my app directory.
    Error :
    The install location for prerequisites has not been set to ‘component vendor’s web site’ and the file ‘DotNetFX35SP1dotNetFX20aspnet.msp’ in item ‘.NET Framework 3.5 SP1’ can not be located on disk. See Help for more information.

    Any idea ?

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.