Welcome to MSDN Blogs Sign in | Join | Help

Microsoft .NET Framework 2.0 Service Pack 1, and How to Detect It

No doubt you've heard the Microsoft .NET Framework 3.5 was released. Aaron Stebner has posted a list of links to 3.5, as well as 2.0 Service Pack 1 (SP1) and 3.0 SP1. It's important to note that if you install 3.5 you're actually getting 2.0 SP1 and 3.0 SP1 both.

The .NET Framework 3.5 consists of the following:

  • Microsoft .NET Framework 2.0 Service Pack 1, which runs on the 2.0 version of the Common Language Runtime (CLR)
  • Microsoft .NET Framework 3.0 Service Pack 1, which runs on the 2.0 version of the CLR and adds Windows CardSpace, the Windows Communication Foundation (WCF), the Windows Presentation Foundation (WPF), and the Windows Workflow Foundation (WF)
  • Microsoft .NET Framework 3.5, which runs on the 2.0 version of the CLR and adds support for LINQ and lots of other new classes

While 2.0 SP1 and 3.0 SP1 are actually full major upgrades that will replace older versions if installed, they update the SP detection keys as documented previously. The registry detection keys we introduced in .NET Framework 3.0 and Visual Studio 2005 will not work for 2.0 SP1 and 3.0 SP1, unfortunately, until at least one patch is installed that will add them in. If you're using the NetFxExtension with WiX, however, to add the AppSearch property NETFRAMEWORK20_SP_LEVEL or NETFRAMEWORK30_SP_LEVEL you'll be fine. These use the older detection keys that will continue to work as documented.

Published Monday, November 26, 2007 3:36 PM by Heath Stewart

Comments

Wednesday, November 28, 2007 9:12 AM by Yonatan Leonov

# great, but where is the changes document?

so you have released .NET 2.0 SP1.

But how can you call it RTM (Release To Manufacturing) if I can't even say RTM (Read The Manual) becuase there is no such manual?

I just can't find any document which describes what hotfix and changes got into this SP.

I have seen multiple requests for this information over blogs and groups.

Can you point me to such document?

In the mean time, I have created a list of all .NET 2.0 hotfixes i have found:

http://readcommit.blogspot.com/2007/11/what-might-be-in-net-20-sp1.html

Thursday, November 29, 2007 10:16 AM by someone

# re: Microsoft .NET Framework 2.0 Service Pack 1, and How to Detect It

1. I am being offered KB932471 repeatedly by Microsoft Update after installing .NET 3.5 RTM.

2. As per http://blogs.msdn.com/heaths/archive/2006/12/16/slipstreaming-visual-studio-2005-service-pack-1.aspx, I successfully completed steps 1-3, however I do not have a network and will be installing locally from my HDD. How then do I deploy the slipstreamed Visual Studio? Could you show me the exact procedure to DEPLOY it? I copied the setup bootstrapper, WCU and Setup folders. I was careful not to replace any files. However I am getting "Internal error 25003" when I install from the slipstreamed package, but it installs properly when I install from the original DVD (the one which is not slipstreamed).

Thursday, November 29, 2007 2:49 PM by Heath Stewart

# re: Microsoft .NET Framework 2.0 Service Pack 1, and How to Detect It

someone, regarding #2 you need to install all the pre-reqs separately then install vs_setup.msi using the command line like so:

msiexec /i <slipstream path>\vs_setup.msi /l*vx %TMP%\MSI_VS.log NOVSUI=1

Yonatan and someone, I'll have to get back to you on those other issues.

Thursday, November 29, 2007 3:29 PM by jamshedd

# re: Microsoft .NET Framework 2.0 Service Pack 1, and How to Detect It

There is a known issue with the detection logic for the update KB932471 because of which this update is reoffered after you install the .NET Framework 3.0 SP1 or the .NET Framework 3.5. This blog post provides more information about this issue:

http://blogs.msdn.com/astebner/archive/2007/08/30/4658114.aspx

Friday, November 30, 2007 12:11 PM by someone

# re: Microsoft .NET Framework 2.0 Service Pack 1, and How to Detect It

I tried deploying but I'm getting "Internal error 25003". According to http://support.microsoft.com/kb/827076, it's related to CD-ROM copy errors but I'm running the setup from my local hard disk. Please help.

Monday, December 10, 2007 10:08 PM by Glenn

# re: Microsoft .NET Framework 2.0 Service Pack 1, and How to Detect It

Hi!

I just want to post quick question to make sure I understand this correctly.

Installing 3.5, would give me both 2.0 SP1 and 3.0 SP1, which are full updates of 2.0 and 3.0 respectively, is that correct?

so if I do a clean install, no .net frameworks installed, all I need is 3.5, unless, of course I still want 1.1. am I right?

Thanks in advance!

Tuesday, December 11, 2007 11:47 PM by Heath Stewart

# re: Microsoft .NET Framework 2.0 Service Pack 1, and How to Detect It

Glenn, yes, you are right. It works whether you have nothing, 2.0, or 3.0 installed. 1.0 and 1.1 are still separate. 2.0 through 3.5 all run on the 2.0 CLR, though 3.5 has its own set of tools while 3.0 is just extra assemblies.

Yes, it gets confusing here, too.

Wednesday, December 12, 2007 6:27 PM by Jim

# re: Microsoft .NET Framework 2.0 Service Pack 1, and How to Detect It

Where's the release notes for this?  Have searched high and low!

Thursday, December 13, 2007 4:13 AM by Yonatan Leonov

# At last - The missing document was published

At last, Microsoft published the list of fixes in SP1.

See my blog for details: http://readcommit.blogspot.com/2007/12/problems-that-are-fixed-in-net.html

Saturday, December 15, 2007 10:37 AM by Colin Bowern

# re: Microsoft .NET Framework 2.0 Service Pack 1, and How to Detect It

Is it just me the thinks that .NET Framework product group botched the detection process?  If you google .NET Framework detection you'll find conflicting KB articles and guidance on how to detect various versions:

http://msdn2.microsoft.com/en-us/library/aa480198.aspx#netfx30_topic14

http://blogs.msdn.com/junfeng/archive/2004/02/05/67815.aspx

http://support.microsoft.com/kb/318785

http://support.microsoft.com/kb/315291

I hope that someone in the NETFX product group can go and clean up the mess they have left.  Now I'm seeing Microsoft's own products break because they can't manage proper framework detection.  The latest victim has been the MBS Dynamics GP 10.0 installation which refuses to install because it says the .NET Framework 2.0 is not installed when in fact it is, along with the Service Pack 1 of the Framework.  The setup process once again takes a back seat at Microsoft and it's getting very frustrating for IT professionals around the world having to deal with regular inconsistencies.

Saturday, December 15, 2007 2:00 PM by Heath Stewart

# re: Microsoft .NET Framework 2.0 Service Pack 1, and How to Detect It

Colin, the registry keys that specify "NET Framework Setup" have always been recommended primary approach to detection. They keys that were missed are specific to detecting the Service Pack level. While unfortunate they were changed in SP1, subsequent versions will have the old, correct path again.

I'm not sure how Dynamics detected the framework, but I know I have seen other product groups internally and externally use non-documented, self-discovered ways of detecting the framework. These approaches are not recommended. Some even try loading the latest CLR in a "mini-host" which is another universal way of doing detection but, of course, more expensive as you're loading the CLR.

Monday, December 17, 2007 10:33 AM by Colin Bowern

# re: Microsoft .NET Framework 2.0 Service Pack 1, and How to Detect It

The challenge is which registry key do we use?  Some articles point to the policy key, others the NDP key.  KB 315291 and the article I linked to on MSDN are a great example where there are two different ways to detect the .NET Framework 2.0.  The article, while it covers up to 3.0, is competing against a KB article that was last updated this month. While one might infer that the registry is the best approach we're still left holding the bag when it comes to which key to check.  The risk isn't clear for those of us who can't call up the product group and ask which is why I'm poing out that there needs to be a better way to provide authoritative guidance.  It isn't a small task, but there needs to be a better way before we are at version 6.0 and have a smelly code block of if statements checking several locations.  We're all fine with a change in methods from version to version, it's more a case of worrying about a moving target that we'll have to hotfix for after the fact.

On the note of the internal product groups it sounds like they could use the guidance too.  The Dynamics GP support folks have just asked me to uninstall the .NET Framework 3.0, 2.0, reboot, run their installation package, and then reinstall the service packs.  On a machine that is also running SQL Server 2005 and BizTalk Server 2006 that's not a small change.  There is at least a day of my time dedicated to a workaround because someone made the wrong call in the development process.  Multiply that by other customers who are faced with the same issue and suddenly we're talking many weeks, if not months, of time wasted  because of a lack of consistent detection within the company.  I'm not sure how you solve it Heath, but it sounds like someone needs to set some guidelines out or throw something into the common engineering practices as to how to best approach detection.  Inevitably someone will not follow it and I would think it should be the responsiblity of the product group to treat it as a bug, not ask the customer to uninstall half their system to workaround an error in the program design.

Monday, December 17, 2007 2:50 PM by Heath Stewart

# re: Microsoft .NET Framework 2.0 Service Pack 1, and How to Detect It

Colin, the "NET Framework Setup" has always existed across platforms and .NET versions and is recommended for simply "Is .NET installed?" queries. Some of the other registry keys like I've documented (and KB content based on) are for more specifics. The SOFTWARE\Microsoft\Updates key is for all servicing products to write to (not all do, mind you) about patches that are installed. So if you're looking for a specific fix across platforms that's the key to check. You'll also find SP level in the "NET Framework Setup" key. The "DevDiv" servicing keys were added in Whidbey to try to have a common path, but those only started with Whidbey and, hence, are recommended for VS.

I've got a lot of specs written over these things that are to help make sure they aren't changed and to inform product groups. Like everything else, though, you have to be looking in the right place. In most cases where detection logic failed it was from people poking around the registry looking for whatever works. Because of differences in installation technology (MSI, OCM, and CMI) across platforms we can't guarantee the same registry keys or even file layout across platforms.

Monday, December 17, 2007 6:03 PM by Matthew

# re: Microsoft .NET Framework 2.0 Service Pack 1, and How to Detect It

We have just found a (reproduble) bug in xslt processing that didn't occur in 2.0 but does in 2.0 sp1.

Where is the appropriate place to log the bug online?

Tuesday, December 18, 2007 4:50 PM by Heath Stewart's Blog

# Fixes in Microsoft .NET Framework 2.0 SP1 and 3.0 SP1

A reader pointed out that the list of fixes for .NET Framework 2.0 Service Pack 1 were published. I also

Tuesday, December 18, 2007 5:56 PM by Noticias externas

# Fixes in Microsoft .NET Framework 2.0 SP1 and 3.0 SP1

A reader pointed out that the list of fixes for .NET Framework 2.0 Service Pack 1 were published. I also

Tuesday, December 18, 2007 8:11 PM by Heath Stewart

# re: Microsoft .NET Framework 2.0 Service Pack 1, and How to Detect It

Matthew, please report bugs at http://connect.microsoft.com/visualstudio.

Monday, December 31, 2007 1:41 PM by lge

# re: Microsoft .NET Framework 2.0 Service Pack 1, and How to Detect It

I just ran into an issue with .NET 2.0 SP1 too.  MS changed the product code with the service pack.  That bungles all our .NET 2.0 product detection scripts.  It's really frustrating.  

Friday, January 04, 2008 4:39 PM by Heath Stewart

# re: Microsoft .NET Framework 2.0 Service Pack 1, and How to Detect It

lge, Microsoft has never condoned that I've seen detecting .NET based on MSI properties. Fact is, even starting with .NET 1.0 it has never been deployed solely using MSI. .NET 1.0 was deployed via update.exe in Tablet PC and Media Center editions, and .NET 1.1 was using update.exe in Win2K3. In Vista, .NET 2.0 and 3.0 (both SP1 as well) use CBS. For both CBS and OCM cases, checking against a ProductCode will never work.

You should use the registry keys for detection only.

Monday, January 07, 2008 3:44 PM by j karter

# detection logic

I am getting detection issues in 2 areas: after installing 2.0 which was REQUIRED for SQL (which installed and ran/accessed just fine) I the installed MS Great Plains, it says "2.0 not detected, please install", the fix seemed to be NOT to install the already installed 2.0 but to delete 1.0, so I did and GP installed but doesnt' run (getting Stop 0x00...5), so now i am trying to uninstall (remove) GP using either the CD or Add/Remove programs and it says, 2.0 not detected...geez

Friday, January 25, 2008 4:36 PM by Ian Suttle's Blog

# .NET Framework 3.5 Info You Might Not Know

.NET Framework 3.5 Info You Might Not Know

Friday, February 01, 2008 7:32 AM by Les

# re: Microsoft .NET Framework 2.0 Service Pack 1, and How to Detect It

what does it mean "..and Visual Studio 2005 will not work for 2.0 SP1 and 3.0 SP1.."? Is it what I'm getting: Macros in vs2005 stop working after installing 2.0SP1 or up?

Monday, February 04, 2008 3:11 PM by Heath Stewart

# re: Microsoft .NET Framework 2.0 Service Pack 1, and How to Detect It

Les, the whole sentence reads, "The registry detection keys we introduced in .NET Framework 3.0 and Visual Studio 2005 will not work for 2.0 SP1 and 3.0 SP1, unfortunately, until at least one patch is installed that will add them in." This patch is about detection registry values, so I'm stating that using those registry values that have worked for previous versions will not wrk for 2.0 SP1 and 3.0 SP1.

New Comments to this post are disabled
 
Page view tracker