Thoughts about setup and deployment issues, WiX, XNA, the .NET Framework and Visual Studio
All postings are provided AS IS with no warranties, and confer no rights. Additionally, views expressed herein are my own and not those of my employer, Microsoft.
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.
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:
.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
.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
%windir%\Microsoft.NET\Framework\v4.0.30319\SetupCache\Extended\setup.exe /uninstall /x86 /x64 /ia64 /parameterfolder Extended /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
%windir%\Microsoft.NET\Framework\v4.0.30319\SetupCache\Extended\setup.exe /uninstall /x86 /x64 /ia64 /parameterfolder Extended /passive /norestart
.NET Framework 4 Full (64-bit) – silent repair
.NET Framework 4 Full (64-bit) – unattended repair
.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
%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
%windir%\Microsoft.NET\Framework64\v4.0.30319\SetupCache\Extended\setup.exe /uninstall /x86 /x64 /ia64 /parameterfolder Extended /passive /norestart
<update date="6/1/2010"> Fixed incorrect command lines for uninstall of the .NET Framework 4 extended. </update>
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:
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:
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>
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.
<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>