My SW project depends on Visual C++ Redistributable for Visual Studio 2015.
If the Redistributable is not installed on a target machine, I would like to download it from the Internet and install it during installation of my project.
Is it possible to do using Wix installer?
I prefer not to use merge modules and include the Redistributable to the my application installer.
Thanks
Yes, using a bundle. See http://wixtoolset.org/documentation/manual/v3/howtos/redistributables_and_install_checks/install_dotnet.html for how it's done with .NET. For VC redistributables, you'd need to define your own ExePackage for vcredist_x86.exe or vcredist_x64.exe.
Related
How do you get msbuild.exe without installing those crazy Visual Studio programs?
I need it for an npm install to finish working. I'm on Windows 7 and can't get on older version of Visual Studio 2013 Express online.
The latest (as of Jan 2019) stand-alone MSBuild installers can be found here: https://www.visualstudio.com/downloads/
Scroll down to "Tools for Visual Studio 2019" and choose "Build Tools for Visual Studio 2019" (despite the name, it's for users who don't want the full IDE)
See this question for additional information.
It used to be installed with the .NET framework. MsBuild v12.0 (2013) is now bundled as a stand-alone utility and has it's own installer.
http://www.microsoft.com/en-us/download/confirmation.aspx?id=40760
To reference the location of MsBuild.exe from within an MsBuild script, use the default $(MsBuildToolsPath) property.
You can also get the MSBuild executable as a Nuget package https://www.nuget.org/packages/Microsoft.Build.Runtime/.
Download MSBuild with the link from #Nicodemeus answer was OK, yet the installation was broken until I've added these keys into a register:
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSBuild\ToolsVersions\12.0]
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
I want to create my installer. But missing Other Project Type > Visual Studio Installer > Setup Project
They are not supported anymore on VS2012.
http://blogs.msdn.com/b/buckh/archive/2011/03/17/visual-studio-setup-projects-vdproj-will-not-ship-with-future-versions-of-vs.aspx
VDProjects are no longer supported. Either:
Use older versions of visual studio to build existing VDPROJ project types (you can keep them in the solution)
If creating new installers, use a framework such as WiX which contains Visual Studio integration. Little bit of a learning curve, but a very good product (and free). This will produce an MSI from XML within a WiX project in visual studio after you install it.
http://wixtoolset.org/
I have installed WIX 3.8 and I still can't find the WIX template in my VS. I don't have a C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\WiX folder as well. How do I enable Wix in VS 2013 Express?
Visual Studio Express editions don't support third-party packages like WiX's Votive. There's nothing WiX can do to integrate into Express.
I have Visual Studio 2008, 2010, and WIX37.msi (WIX 3.7) installed on my machine.
However, I am unable to see WIX project type in Visual studio 2008/2010.
Do I need to install additional tool/plugin?
I have Visual Studio 2008 and Visual Studio 2010 installed on my machine and I installed WiX v3.7 RTM from Codeplex. Things work okay for me. There is a known issue in VS2008 that requires you to set an MSBuild property called RunWixToolsOutOfProc to true. This occurred because parts of WiX v3.7 were incorrectly built against the NETFX4.0 and VS2008 runs on NETFX2.0.
Install v3.0 of WiX Toolset, to make it work with Visual Studio 2008. You can get it here: http://wix.codeplex.com/releases/view/44406
I don't know why it's not documented on their site but apparently you can't install the latest version (3.10 at the moment) and make it work with VS2008.
My project depends upon "Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package ATL Security Update", I want to put a check at the beginning of the setup to display a condition error if the package is not installed..
I checked this question: How to detect VC++ 2008 redistributable?? I cannot find the registry entry provided for visual C++ 2005 SP1 ATL Security Update runtime files (After installing the redistributable manually)..
What am I doing wrong here? And is there a better to detect the redistributable package?
Thanks,
For anyone else looking for the same answer:
Installed OR (HASVCPP200564)
There are different registry guids for 32/64 bit, the above is 64 bit.
Cheers,