Unable to check registry for Visual C++ 2008 redistributables using WIX Bootsraper - wix

I am able to check registry for Visual C++ 2010 redistributables using WIX Bootsrapper using below code
util:RegistrySearch Id="VC2010x86" Root="HKLM" Key="SOFTWARE\Microsoft\VisualStudio\10.0\VC\VCRedist\x86" Variable="CPP2010Redistx86" Value="Installed" Result="value"
But I do not know how I need check registry for Visual C++ 2008 redistributables using WIX Bootsraper.
What will be the key value I need to use for VC++ 2008 instead of Key="SOFTWARE\Microsoft\VisualStudio\10.0\VC\VCRedist\x86" which I uses for VC++ 2010.
Kindly suggest.

This seems to cover the ProductCodes you can search for:
http://blogs.msdn.com/b/astebner/archive/2009/01/29/9384143.aspx
or use them to look at the uninstall registry key.
or use them as dependencies. To be honest, I usually don't bother. I assume you have a redist exe that you are distributing anyway, so just run that exe and it will do the right thing. The issue is that MS might ship a security fix package at any time and you cannot predict the key value or ProductCodes, plus you need to woyry about the architecture etc. Is there a reason you can't just run the redist and let it discover whether it needs to be installed or not?

Related

Include dll's in WiX msi base Installer

I am currently making an Outlook addin in Visual Studio 2012,
i create an Installer for my project, but in order for my addin to work on my clients computers i also need to add the SharePoint Foundation (http://www.microsoft.com/en-us/download/details.aspx?id=21786) dll’s,
but when I try to add them from my C:\Windows\assembly folder to the WiX msi base installer Project\References - (by right clicking and pressing add Reference), I get the following error “A reference to [filepath] could not be added. Please make sure that the file is accessible, and that it is a valid WiX reference.“
Do you know what I can do ?
thanks a lot for your help!
You need to add the files to Product.wxs - see http://wix.sourceforge.net/manual-wix3/wix_learning.htm . You only add .wixlib and other projects via references.
Another approach would be to use a WiX 3.7 Bootstrapper project. The bootstrapper engine is often called "Burn" so you might see that in discussions.
A bootstrapper project allows you to install dependencies using their own installers, such as the "SharePoint Foundation 2010 Client Object Model Redistributable" you linked to. A nice example of a bootstrapper is the WiX 3.7 installer itself but most projects can be much simpler.
Installing dependencies using vendor provided installers has the advantage of avoiding having to re-implement any necessary logic yourself and allows them to managed and upgraded by the user.

Installing Visual Studio Snippets with Wix

I created an installer for MVVM Light and part of the installation is about code snippets for Visual Studio 2010, 2010 Express and 2008. Unfortunately, the code snippets are installed into a folder with a LCID (culture code, for instance 1033 for en-US). If the snippets are not in the correct folder/LCID, Visual Studio doesn't load them (yes, utterly stupid I know. But this is what we have...)
When VS is installed in English, all is well. However when a Geman (for instance) version of VS is found, the snippets fail to register in VS.
Is there a way in Wix to detect the LCID and to use that as a property, in other words to install the snippets in the correct folder depending on the LCID? I know about multilanguage installers but it seems like a bazooka to kill a fly. Any other idea?
Thanks,
Laurent
The user's locale is available in the UserLanguageID property. You need a SetDirectory to assign the runtime value to a directory's name.

What are the options to build an installer on a build-server without Visual Studio

It seems like it's still not possible to build .vdproj on a build-server without having Visual Studio installed. However, using Wix seems to be a lot more complicated.
Are there any other options to do the following task:
Visual Studio 2010 Solution with multiple projects (.csproj)
Many loose content files (not inside assemblies)
Installer must be built on Build-server without Visual Studio on it (devenv.exe / devenv.com)
Installer must create Registry keys
Installer must associate file extensions with installed product
Installer must support upgrades (version upgrades)
Installer should be able to register COM components
Installer should be able to pre-JIT assemblies
My goal is:
Effort to maintain installer is low
Minimal changes if new project (assembly) is added to solution
Ideal: no changes if new content files are added to any of the projects
Maybe I just did not get the point with Wix, but including project output (like in .vdproj) seems very complicated.
Any suggestions very much appreciated!
OK I decided to go with Wix. Found out that using Votive it's possible to include project output like in .vdproj (Binaries, Content, Symbols and even Source Code).
If I run into more complicated situations where this isn't sufficient, I could fall back to some kind of harvester (Heat, Paraffin).
See some more Links in comments below (too little reputation to post more than 1 link in this post).
Check out InstallShield 2010 Limited Edition ( Free for Visual Studio 2010 users ). It has pretty much all the functionality that VDPROJ ( being retired btw ) has and supports silent builds. You can get one license for your dev box and one license for your build machine pretty easily.

windows installer for COM component

I have a C++ activex control that I need to make an installer for. It needs to drop the dll and make some registry keys.
I have about 6 .RGS files which I made for self-registration via regsvr32, which work.
To do an installer I am manually porting the RGS scripts into the visual studio 2008 windows installer registry GUI. I feel like its not possible to do an exact port (e.g. RGS keywords like ForceRemove).
Isn't there a way to generate these files from the IDL file? Am I doing this wrong?
SelfReg is not a best practice in an MSI install because it's out of process and fragile. Visual Studio 2008 Installers are limited but you should be able to set the Register property to vsdrfCOM instead of vsdrfCOMSelfReg. This will cause the COM meta data to be harvested from your DLL and authored natively in MSI.
After you build your MSI, you should notice the SelfReg table is empty and a serious of automatically authored rows in the Registry table for you COM data.
Note: VDPROJ is kind of flakey at extracting this COM so it may not work. You might have to consider a stronger tool such as InstallShield or Windows Installer XML.
You are doing it wrong. The .rgs files are there so that the component can install itself. Any installer supports letting a component install itself. A Visual Studio Setup project for example, set the Register property.

MSI Installer error-dialog localization (WiX)

I have created an MSI installer for a .NET 3.5 application written in Visual Studio Express 2008. The installer UI is localized (to danish) and looks fine. My problem is that errors, say a previous version is installed and needs to be removed first, the error dialog is in english. How do I localize error-dialogs too?
I'm not familiar with Visual Studio, but have you checked out http://www.tramontana.co.hu/wix/lesson2.php#2.3 - you need to ensure you specify the correct language and codepages in the Product and Package tags. You might need to edit the source wxs file if VS doesn't provide a GUI for this.