Aaron Stebner's WebLog

Thoughts about setup and deployment issues, WiX, XNA, the .NET Framework and Visual Studio

May, 2010

  • Aaron Stebner's WebLog

    Updated versions of .NET Framework cleanup and verification tools that work with the .NET Framework 4

    • 18 Comments

    Over the past week or so, I finally found some time to update the .NET Framework cleanup and verification tools to support the recently released .NET Framework 4 product family.  I have uploaded new versions of both tools, and you can find more information about the tools and download links in their users guides.  Here are links for the users guides for each of these tools:

    As always, please let me know if you run into any bugs, questions or feature suggestions while using either of these tools.  I would prefer that you post a comment on the user’s guide blog posts so the comments will be visible to other users as well, but you can also send me an email.

  • Aaron Stebner's WebLog

    Silent install, repair and uninstall command lines for the .NET Framework 4

    • 102 Comments

    I have previously posted command lines that can be used to install, repair and uninstall the versions of the .NET Framework in silent mode and unattended mode.  Now that the .NET Framework 4 has shipped, I wanted to post an equivalent set of steps to install, repair and uninstall the .NET Framework 4 Client Profile and Full.

    The .NET Framework 4 uses a different setup chainer than in previous versions of the .NET Framework.  As a result, the command lines are somewhat different than in previous releases.  There are also a few differences in how the repair and uninstall processes work that I wanted to call out specifically:

    • There are different repair and uninstall command lines for 32-bit and 64-bit versions of the .NET Framework 4
    • The .NET Framework 4 includes both a client profile and a full version.  Uninstalling the full version requires 2 steps – one to uninstall the extended component and another to uninstall the client profile.

    .NET Framework 4 product family

    .NET Framework 4 Client Profile (32-bit) – silent repair

    %windir%\Microsoft.NET\Framework\v4.0.30319\SetupCache\Client\setup.exe /repair /x86 /x64 /ia64 /parameterfolder Client /q /norestart

    .NET Framework 4 Client Profile (32-bit) – unattended repair

    %windir%\Microsoft.NET\Framework\v4.0.30319\SetupCache\Client\setup.exe /repair /x86 /x64 /ia64 /parameterfolder Client /passive /norestart

    .NET Framework 4 Client Profile (32-bit) – silent uninstall

    %windir%\Microsoft.NET\Framework\v4.0.30319\SetupCache\Client\setup.exe /uninstall /x86 /x64 /parameterfolder Client /q /norestart

    .NET Framework 4 Client Profile (32-bit) – unattended uninstall

    %windir%\Microsoft.NET\Framework\v4.0.30319\SetupCache\Client\setup.exe /uninstall /x86 /x64 /parameterfolder Client /passive /norestart

    .NET Framework 4 Client Profile (64-bit) – silent repair

    %windir%\Microsoft.NET\Framework64\v4.0.30319\SetupCache\Client\setup.exe /repair /x86 /x64 /ia64 /parameterfolder Client /q /norestart

    .NET Framework 4 Client Profile (64-bit) – unattended repair

    %windir%\Microsoft.NET\Framework64\v4.0.30319\SetupCache\Client\setup.exe /repair /x86 /x64 /ia64 /parameterfolder Client /passive /norestart

    .NET Framework 4 Client Profile (64-bit) – silent uninstall

    %windir%\Microsoft.NET\Framework64\v4.0.30319\SetupCache\Client\setup.exe /uninstall /x86 /x64 /parameterfolder Client /q /norestart

    .NET Framework 4 Client Profile (64-bit) – unattended uninstall

    %windir%\Microsoft.NET\Framework64\v4.0.30319\SetupCache\Client\setup.exe /uninstall /x86 /x64 /parameterfolder Client /passive /norestart

    .NET Framework 4 Full (32-bit) – silent repair

    %windir%\Microsoft.NET\Framework\v4.0.30319\SetupCache\Client\setup.exe /repair /x86 /x64 /ia64 /parameterfolder Client /q /norestart

    .NET Framework 4 Full (32-bit) – unattended repair

    %windir%\Microsoft.NET\Framework\v4.0.30319\SetupCache\Client\setup.exe /repair /x86 /x64 /ia64 /parameterfolder Client /passive /norestart

    .NET Framework 4 Full (32-bit) – silent uninstall

    %windir%\Microsoft.NET\Framework\v4.0.30319\SetupCache\Extended\setup.exe /uninstall /x86 /x64 /ia64 /parameterfolder Extended /q /norestart

    %windir%\Microsoft.NET\Framework\v4.0.30319\SetupCache\Client\setup.exe /uninstall /x86 /x64 /parameterfolder Client /q /norestart

    .NET Framework 4 Full (32-bit) – unattended uninstall

    %windir%\Microsoft.NET\Framework\v4.0.30319\SetupCache\Extended\setup.exe /uninstall /x86 /x64 /ia64 /parameterfolder Extended /passive /norestart

    %windir%\Microsoft.NET\Framework\v4.0.30319\SetupCache\Client\setup.exe /uninstall /x86 /x64 /parameterfolder Client /passive /norestart

    .NET Framework 4 Full (64-bit) – silent repair

    %windir%\Microsoft.NET\Framework64\v4.0.30319\SetupCache\Client\setup.exe /repair /x86 /x64 /ia64 /parameterfolder Client /q /norestart

    .NET Framework 4 Full (64-bit) – unattended repair

    %windir%\Microsoft.NET\Framework64\v4.0.30319\SetupCache\Client\setup.exe /repair /x86 /x64 /ia64 /parameterfolder Client /passive /norestart

    .NET Framework 4 Full (64-bit) – silent uninstall

    %windir%\Microsoft.NET\Framework64\v4.0.30319\SetupCache\Extended\setup.exe /uninstall /x86 /x64 /ia64 /parameterfolder Extended /q /norestart

    %windir%\Microsoft.NET\Framework64\v4.0.30319\SetupCache\Client\setup.exe /uninstall /x86 /x64 /parameterfolder Client /q

    .NET Framework 4 Full (64-bit) – unattended uninstall

    %windir%\Microsoft.NET\Framework64\v4.0.30319\SetupCache\Extended\setup.exe /uninstall /x86 /x64 /ia64 /parameterfolder Extended /passive /norestart

    %windir%\Microsoft.NET\Framework64\v4.0.30319\SetupCache\Client\setup.exe /uninstall /x86 /x64 /parameterfolder Client /passive /norestart 

    <update date="6/1/2010"> Fixed incorrect command lines for uninstall of the .NET Framework 4 extended. </update>

     

  • Aaron Stebner's WebLog

    Offline install options for the Windows Phone Developer Tools CTP Refresh

    • 0 Comments

    I have heard from a few folks who have had trouble getting the web download bootstrapper for the Windows Phone Developer Tools CTP Refresh working correctly in their network environment.  Unfortunately, the CTP Refresh only ships as a web download bootstrapper and not as a full install package that can be downloaded as a single package and installed offline without requiring Internet connectivity.  However, there are a couple of options that can be used as workarounds in case you run into problems with the web download bootstrapper:

    1. A customer created a full install ISO file for the WPDT CTP Refresh that can be burned to a CD and installed offline.  You can find more information in this blog post.

    2. You can use information in the setup data files for the WPDT CTP Refresh to assemble your own network install layout.  The instructions in this blog post are from the Visual Studio 2008 Express Editions, but the same type of technique will also work for the WPDT CTP Refresh because it uses the same installation engine as the other editions of Visual Studio.
  • Aaron Stebner's WebLog

    Mailbag: How to detect the presence of the Visual C++ 2010 redistributable package

    • 64 Comments

    Question:

    I have seen your previous blog posts that describe how to detect the presence of the Visual C++ 2005 redistributable package and the Visual C++ 2008 redistributable package.  I am creating an installer that requires the Visual C++ 2010 runtime files.  How can I detect the presence of the Visual C++ 2010 redistributable package?

    Answer:

    Unlike the Visual C++ 2005 and 2008 redistributable packages, there are registry keys that can be used to detect the presence of the Visual C++ 2010 redistributable package.

    Visual C++ 2010 redistributable package detection registry values




    Alternatively, like in past releases of the Visual C++ redistributable package, you can use an algorithm like the one I described in my previous blog posts to detect the presence of the Visual C++ 2010 redistributable package on a system:

    1. Call the MsiQueryProductState API
    2. Pass in the product code for the package that you want to detect based on the list below
    3. Check the return value of this API.  If it is anything other than INSTALLSTATE_DEFAULT, the package is not yet installed

    Visual C++ 2010 redistributable package product codes

    Visual C++ 2010 SP1 redistributable package product codes

    <update date="4/12/2011"> Added product codes for Visual C++ 2010 SP1 redistributable packages. </update>

     

  • Aaron Stebner's WebLog

    How to install the Windows Phone Developer Tools on Windows Server 2008

    • 65 Comments

    The Windows Phone Developer Tools are not officially supported on operating systems other than Windows Vista or Windows 7.  In between the CTP and the CTP Refresh, a block was added to setup to prevent installing on Windows Server 2008 to help enforce this support limitation.  I’ve heard from some folks who were using the original CTP on Windows Server 2008 who cannot move forward to the CTP Refresh or the final release because of this block.

    There is a way you can work around the Windows Server 2008 setup block if needed.  Please note that this is not officially supported, so if you try these steps, you are doing so at your own risk.

    1. Download the Windows Phone Developer Tools web bootstrapper and save it to your hard drive
    2. Extract the contents of the setup package by running vm_web.exe /x and choosing a path to extract to
    3. Go to the folder you extracted to in step 2 and open the file baseline.dat in notepad
    4. Look for the section named [gencomp7788]

      Note - you have to change this exact section - this is the one that controls the OS version blocking behavior in Windows Phone Developer Tools setup.
       
    5. Change the value InstallOnLHS from 1 to 0
    6. Change the value InstallOnWin7Server from 1 to 0
    7. Save and close baseline.dat
    8. Run setup.exe /web from the folder you extracted to in step 2

      Note - please make sure that you include the /web command line parameter in step 8.  If you don't, setup will not attempt to download the packages it needs to install, and it will fail to install correctly as a result.

    <update date="9/17/2010"> Added an emphasis on steps 4 and 8 - setup will fail if you don't pass in the /web switch when using these steps.  Also updated the steps for the final RTW build of Windows Phone Developer Tools. </update>

     

Page 1 of 1 (5 items)