PDA

View Full Version : Dependency Module: Visual C++ 2008 Redistributable Package


venky
09-04-2008, 08:23 PM
Overview
Use the Visual C++ 2008 dependency module with MSI Factory 2.0 to detect and install Visual C++ 2008 redistributable package.

Background Information
The Microsoft Visual C++ 2008 Redistributable Package installs runtime components of Visual C++ Libraries required to run applications developed with Visual C++ on a computer that does not have Visual C++ 2008 installed. This package installs runtime components of C Runtime (CRT), Standard C++, ATL, MFC, OpenMP and MSDIA libraries. For libraries that support side-by-side deployment model (CRT, SCL, ATL, MFC, OpenMP) they are installed into the native assembly cache, also called WinSxS folder, on versions of Windows operating system that support side-by-side assemblies. The Visual C++ 2008 redistributable installation package is available as a stand-alone executable file, vcredist_x86.exe (x86 systems) and vcredist_x64 (x64 systems). When this dependency module is included in your setup, it installs Visual C++ 2008 redistributable package if needed.

Installation Instructions
To make Visual C++ 2008 dependency module available in your MSI Factory 2.0 projects, follow the steps below:
1. Close MSI Factory 2.0, if it is running.
2. Browse to the folder where MSI Factory 2.0 is installed on your system. By default it is C:\Program Files\MSI Factory (on Windows Vista (64-bit) it is C:\Program Files (x86)\MSI Factory).
3. Open the folder called Dependencies.
4. Unzip the contents of VC++2008.zip (see bottom of article) into the dependencies folder.
5. Download the Visual C++ 2008 redistributable x86 (vcredist_x86.exe) (http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en) into the VC++2008_Include subfolder.
6. Download the Visual C++ 2008 redistributable x64 (vcredist_x64.exe) (http://www.microsoft.com/downloads/details.aspx?familyid=BD2A6171-E2D6-4230-B809-9A8D7548C1B6&displaylang=en) into the VC++2008_Include subfolder.
7. Restart MSI Factory 2.0.
To use your new dependency module, select Build > Settings from the main menu. Select standard bootstrapper option and click the Edit button. Click dependencies tab and click Add button. Select Visual C++ 2008 dependency module from the list of available dependency modules. Visual C++ 2008 should now be visible in the dependency modules section. You can edit or customize the configuration of the dependency module in the configuration section.

Information Links
More Information on Visual C++ 2008 redistributable x86 (http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en)
More Information on Visual C++ 2008 redistributable x64 (http://www.microsoft.com/downloads/details.aspx?familyid=BD2A6171-E2D6-4230-B809-9A8D7548C1B6&displaylang=en)


Module Name: Visual C++ 2008 Redistributable
Type: MSI Factory 2.0 Dependency Module
Created By: kumar (8/1/2008)
Last Revision: August 1, 2008 (001)
Disclaimer: This dependency module is not officially supported by Indigo Rose. If you have any issues or feedback please contact me or post in the forum.

kk250040
11-17-2008, 08:48 AM
Can we use this dependency module in the Setup Factory? Are the steps same for that too, can i include this without any changes made or would it require any changes for it to be used in SetUpFactory 7 :huh

ctw
02-02-2009, 02:49 PM
Microsoft seems to have created two versions of the redist package. You will need to use "Microsoft Visual C++ 2008 SP1 Redistributable Package" in order to use the new feature pack. The exe name is still vcredist_x86.exe but it is a much larger install.

SetupJuggler
02-20-2009, 04:08 AM
Hi,

to detect for SP1, you now should use:


snip...
searchFolder = _WindowsFolder.."\\winsxs\\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_ 9.0.30729.1_x-ww_6f74963e";
snip...

-- Compare the returned value against the needed value
Compare = String.CompareFileVersions(VCppDll_ver.FileVersion , "9.0.30729.1");
snip...



BTW, SP1 might not be the last service pack released. So it would be a good idea to have a new function named isVCpp2008_SP1_Runtime_Installed(), so it's easier to switch between service packs.