Something that's cost me a lot of time recently is trying to install  the .net 3.5 Framework to multiple computers in a domain using Group Policy. You would think, being a Microsoft product that the installer would be provided as an MSI as well as an EXE to ease deployment through domains. This however, is not the case.

The following steps should get .net 3.5 deployed to your domain computers. Please note that .net 3.5 cannot be installed without the previous versions (2.0 SP1 and 3.0 SP1) being installed. It will also not tell you there is a problem and there will not be any errors in the Event Viewer.

  1. Grab the re-distributable .net installer (not the Web Setup) from this page (Warning: 197MB). The re-distributable download link is found under the "Instructions" section of that page. Save this to somewhere easy to get to.
  2. Browse to the directory where you saved the file. Hold down shift and right click on the explorer window. You should see an extra menu item that says open a command window here, click this. You now need to extract the install files with the command (change the extraction directory to wherever you want to store the files):
    dotnetfx35.exe /x:C:dotnet
  3. Go to the directory you extracted the install files to and browse to wcu\dotNetFramework\dotNetFX35\x86.
  4. In the x86 directory, you should have an exe file called netfx35_x86.exe. Run the following command to extract the MSI file from the EXE (you will need to select a new directory to extract to, a subdirectory will do):
    netfx35_x86.exe /x:C:\dotnet\wcu\dotNetFramework\dotNetFX35\x86\extract
  5. You should now have two more files extracted in the directory you just specified, vs_setup.msi and
  6. You now need to install Orca which is part of the Platform SDK. You can download the platform SDK from Microsoft.
  7. Once you have installed the Platform SDK, browse to
    Program Files\Microsoft SDKs\Windows\v6.0A\Bin
    and run the installer, Orca.msi. Once installed, it should appear on your start menu.
  8. Run Orca and open the vs_setup.msi file you extracted earlier.
  9. Under Property, add a new property called "ADDEPLOY" and give it a value of 1.
  10. Save your msi.
  11. Repeat steps 4-5 and 8-10  for the x64 version of the .net installer which was extracted to the same directory as the x86 version was.
  12. Now, create a new GPO and assign it to the Computers you wish to deploy the update on (For all computers in the domain: Domain Computers).
  13. Then, add both the x86 and x64 MSI files to a GPO. Make sure you add it to the Computer Configuration rather than User Configurations as we only want to install this once per machine.
  14. You will now need to stop the x86 version from installing on x64 systems. This can be done by right clicking on the x86 version, click properties, go to the deployment tab, then advanced, then un-check "Make this 32-bit X86 application available to Win64 machines". Note that  the x64 version will not get installed on x86 systems based systems by design.
  15. You will also need to set the GPO to not allow a login until a network connection has been made. This is because your installer should be on a share on your network. To do this, go to Computer Configuration -> Administrative Templates -> System -> Logon. There should be a setting called "Always wait for the network at computer startup and logon", open it up and set it to Enabled.
  16. All done! You should now have a fully working .net 3.5 update that will be deployed next time the client machines are re-started. You can force and update by running the following at a command prompt on each machine:
    gpupdate /force