Sprawdzenie czy zainstalowany jest .NET 2

Witam

chcę w instalatorze programu korzystającego z .NET 2 umieścić jakiś mały kod, który po zakończeniu pracy instalatora uruchamiałby się i sprawdzał czy w systemie można uruchamiać programy skompilowane dla środowiska .NET 2. Jeśli środowiska by nie było, to wyświetlałby informację o tym.

Jak sprawdzić czy w systemie zainstalowane jest środowisko na którym można uruchomić programy dla .net 2?

czy wystarczy sprawdzić istnienie katalogu:

%windir%\Microsoft.NET\Framework\v2.0.50727

??

czy jest może jakiś bardziej profesjonalny sposób, np przez sprawdzenie istnienia lub wersji jakiejś biblioteki??

to podaj w jakich kluczach rejestru takie coś mogę sprawdzić.

przecież mi nie chodzi o ręczne sprawdzenie, tylko żeby to sprawdził programik.

zresztą chodzi też o taką sprawę, że mając zainstalowaną wersję 2, mogę na niej również uruchamiać programy przygotowane dla środowiska 1/1.1.

jeśli jest zainstalowane środowisko w wersji 3, to mogę na nim uruchomić aplikacje przygotowane dla 1, 2 i 3.

Wpis KB opisujący jak wykryć .NET Framework:

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

Generalnie konieczne jest sprawdzenie, czy istnieje gałąź

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework\policy###

gdzie ### to wersja .NET. Sprawdzenie czy istnieje katalog nie jest wystarzające - nie zawsze .NET 2.0 jest w buildzie 50727. Poza tym framework 3.0 to dokładnie to, co ma 2.0 + kilka nowych przestrzeni nazw (nie ma wielu, lub nie ma wcale tzw. “breaking changes”).