29

How can I have my Wix package to download the required .NET Framework when it's not yet installed in the client's machine? I already have the condition to check for the installed .NET version but I'm not sure how to have it downloaded and installed when not found.

ClickOnce does this automatically by checking the pre-requisites in the properties pages. I just need to have it done in Wix due to some other requirements.

Thanks!

abatishchev
  • 98,240
  • 88
  • 296
  • 433
Leon Tayson
  • 4,741
  • 7
  • 37
  • 36
  • 1
    Old Question, Wix now knows to do prerequisites. – kroiz Sep 03 '13 at 09:15
  • **UPDATE**: Have a look here: **[How To: Install the .NET Framework Using Burn](http://wixtoolset.org/documentation/manual/v3/howtos/redistributables_and_install_checks/install_dotnet.html)** – Stein Åsmul Aug 03 '17 at 23:24

5 Answers5

37

UPDATE Aug 2017: This very nice answer now appears outdated. Please also read the other answers in the "thread" for a few different "bootstrapper options".


The MSI package created by Wix is not able to do that. Windows Installer is rather limited and one MSI file (your installer) is not allowed to call another MSI file (the .NET Framework installer).

You will have to create a so-called bootstrapper (a setup.exe file) which can check for the specified pre-requisites, download and install them as needed, and then launches your MSI installer.

One way to create the bootstrapper is by using Visual Studio or the MSBuild task GenerateBootstrapper. Here's a link giving more details:

http://wix.mindcapers.com/wiki/Bootstrapper

If you only want to provide a single installer to your users you might want to create a self-inflating installation package containing both the setup.exe file and your MSI package. You could do that with iexpress, which is coming with Windows.

Here's another link giving an example: http://www.clariusconsulting.net/blogs/pga/comments/42831.aspx

Stein Åsmul
  • 39,960
  • 25
  • 91
  • 164
Dirk Vollmar
  • 172,527
  • 53
  • 255
  • 316
11

Wix will contain its own bootstrapper called burn. Have a look at: http://robmensching.com/blog/posts/2009/7/14/Lets-talk-about-Burn

Bartek Szafko
  • 406
  • 3
  • 7
9

DotNetInstaller is also recommended by many developers as good and solid bootstrapper.

UPDATE: updated URL to DotNetInstaller, Aug 2017.

Stein Åsmul
  • 39,960
  • 25
  • 91
  • 164
Yan Sklyarenko
  • 31,557
  • 24
  • 104
  • 139
7

This is now supported as of WiX 3.6. The documentation is still sketchy, but for starters, look at How To: Install the .NET Framework Using Burn.

Edward Brey
  • 40,302
  • 20
  • 199
  • 253
7

In wix 3.6 using the bootstrapper all you need to add .net 4.0 as a prerequisite to be downloaded if required is..

a) Add a reference to the file WixNetFxExtension.dll into your Bootstrapper / managed Bootstrapper app project

b) Add the following as the first item in your chain..

<PackageGroupRef Id="NetFx40Web"/>

That really is it!

Further info here : wixnetfxextension documentation

Fetchez la vache
  • 4,940
  • 4
  • 36
  • 55
  • I have found not support for Net Core in there. Any known? – Noman_1 Oct 29 '21 at 06:13
  • @Noman_1 - sorry this reply is so late - Stackoverflow has only notified me of your comment today (15th March 2022!!!) We haven't updated our client products to core yet so can't comment - will do as soon as I know :) – Fetchez la vache Mar 15 '22 at 08:47