ClickOnce and .NET 3.0 Prerequisite

I'm working on a WinForm application that will utilize WCF to access services on a remote server, and that will be installed via ClickOnce.  Since it's using WCF, I need to ensure that the 3.0 framework is installed on the client machine.  Luckily, ClickOnce has a nice mechanism to install prerequisites.  Unluckily, .NET 3.0 wasn't showing up in the prerequisites I could choose from.   And it should have been since I took all the necessary steps, which are: 

  1. Install the Visual Studio 2005 extensions for .NET Framework 3.0 (WCF & WPF), November 2006 CTP.   
  2. Copy the redistributable files (dotnetfx3.exe and dotnetfx3_x64.exe,) to the folder C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\NETFX30. 

At least that's what everyone said.  After a little more research on adding custom prerequisites, I found out how Visual Studio looks for the the prerequisites, which is by looking at these registry keys in order:

  1. HKCU\Software\Microsoft\GenericBootstrapper\1.0\Path
  2. HKLM\Software\Microsoft\GenericBootstrapper\1.0\Path
  3. HKLM\Software\Microsoft\.NET Framework\sdkInstallRootv2.0

I had no values for the first two, but the third was pointing to C:\Program Files\Microsoft.NET\SDK\v2.0\.  Under this folder, there was a BootStrapper\Packages folder that actually contained items.    So when I copied my NETFX3.0 folder from the Visual Studio folder to the SDK folder, it showed up as an available prerequisite in Visual Studio.  Which led to my next problem, that I'll blog about when I've figured out how to address it...

2 comments: (+add yours?)

Ido Ran said...

Hi, I have reach your post through google and you've halp me a lot :)

Thanks and keep on writing.

Anonymous said...

Thank you so much for your posts. They have been most helpful