none
.NET 3.5 SP1 prerequisite not being enforced RRS feed

  • Question

  •  I have created a simple WPF app that uses the WebBrowser control that is new and included with .NET 3.5 SP1.

    Here is the xaml for my app:

    <Window x:Class="WpfApplication1.Window1" 
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        Title="Window1" Height="300" Width="300">  
        <Grid> 
            <WebBrowser Source="http://www.google.com"></WebBrowser> 
        </Grid> 
    </Window> 
     


    I then created a Windows Installer (not Click Once) deployment project and left the prerequisites set to their defaults of "Windows Installer 3.1" and ".NET Framework 3.5 SP1". I also left the defaults of "Create setup program to install prerequisite components" checked and "Download prerequisites from the component vendor's web site" selected.

    I then added the primary output of my WPF app to the deployment project.

    When I view the Launch Conditions in my deployment project I see a ".NET Framework" launch condition with the following default values:
        Name = .NET Framework
        InstallUrl = http://go.microsoft.com/fwlink/?LinkId=76617
        Message = [VSDNETMSG]
        Version = 3.5.30729

    I then built the deployment project and created my msi.

    I then ran the msi on a virtual machine that did not have any .NET framework installed. The installer prompted me to download and install .NET 3.5 SP1 and all is well.

    But if I run the same msi on a virtual machine that already has .NET 3.5, but not .NET 3.5 SP1, the installer does not enforce my .NET 3.5 SP1 prerequisite.

    How can I enforce the .NET 3.5 SP1 prerequisite on a machine that already has .NET 3.5 installed?

    fyi ... The virtual machines that I am testing with are Vista Business SP1, however do not think this is relevant to my problem.

    Thanks,
    PaulG

    Wednesday, November 12, 2008 6:25 PM

Answers

  • The .NET Frameworks Launch Condition does not have the ability to test for SP1 levels.

    If you want to do this, you can create a new Registry Key launch condition, and check that HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.5    Value=SP   Condition>=1

    You won't get the same message experience that the .NET Framework launch condition provides, but it will allow you to set a message. 

    On the other hand, the bootstrapper package already has this logic, so if you just include the SP1 package and the setup.exe bootstrapper files, then it will test, and install on machines that don't have 3.5 SP1 installed before running the .MSI


    David Guyer - Deployment Technologies Group PM
    • Marked as answer by pegomes Thursday, November 13, 2008 7:20 PM
    Thursday, November 13, 2008 6:53 AM

All replies

  • The .NET Frameworks Launch Condition does not have the ability to test for SP1 levels.

    If you want to do this, you can create a new Registry Key launch condition, and check that HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.5    Value=SP   Condition>=1

    You won't get the same message experience that the .NET Framework launch condition provides, but it will allow you to set a message. 

    On the other hand, the bootstrapper package already has this logic, so if you just include the SP1 package and the setup.exe bootstrapper files, then it will test, and install on machines that don't have 3.5 SP1 installed before running the .MSI


    David Guyer - Deployment Technologies Group PM
    • Marked as answer by pegomes Thursday, November 13, 2008 7:20 PM
    Thursday, November 13, 2008 6:53 AM
  • Thank you :)
    Thursday, November 13, 2008 7:20 PM