जवाबों:
को देखो HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5\। इनमें से एक सत्य होना चाहिए:
Versionउस कुंजी का मान 3.5.30729.01 होना चाहिएSPउसी कुंजी में मान 1 होना चाहिएC # में (पहली टिप्पणी से लिया गया), आप इन पंक्तियों के साथ कुछ कर सकते हैं:
const string name = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5";
RegistryKey subKey = Registry.LocalMachine.OpenSubKey(name);
var version = subKey.GetValue("Version").ToString();
var servicePack = subKey.GetValue("SP").ToString();
Versionहै 3.5.30729.5420और SPहै1
reg query "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5" /V Version reg query "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5" /V SP
आप सर्वर से IE का उपयोग करके SmallestDotNet पर जा सकते हैं । यदि आप पुराने हैं तो आपको संस्करण बताएंगे और डाउनलोड लिंक भी देंगे।
दूरस्थ डेस्कटॉप या रजिस्ट्री तक पहुंच के बिना सर्वर पर स्थापित फ्रेमवर्क संस्करणों का पता लगाने का तरीका जानने की कोशिश करते हुए मैं इस पृष्ठ पर आया, इसलिए डैनी वी के जवाब ने मेरे लिए काम किया।
string path = System.Environment.SystemDirectory;
path = path.Substring( 0, path.LastIndexOf('\\') );
path = Path.Combine( path, "Microsoft.NET" );
// C:\WINDOWS\Microsoft.NET\
string[] versions = new string[]{
"Framework\\v1.0.3705",
"Framework64\\v1.0.3705",
"Framework\\v1.1.4322",
"Framework64\\v1.1.4322",
"Framework\\v2.0.50727",
"Framework64\\v2.0.50727",
"Framework\\v3.0",
"Framework64\\v3.0",
"Framework\\v3.5",
"Framework64\\v3.5",
"Framework\\v3.5\\Microsoft .NET Framework 3.5 SP1",
"Framework64\\v3.5\\Microsoft .NET Framework 3.5 SP1",
"Framework\\v4.0",
"Framework64\\v4.0"
};
foreach( string version in versions )
{
string versionPath = Path.Combine( path, version );
DirectoryInfo dir = new DirectoryInfo( versionPath );
if( dir.Exists )
{
Response.Output.Write( "{0}<br/>", version );
}
}
इस लेख पर एक नज़र डालें जो रजिस्ट्री कुंजियों को दिखाता है जिन्हें आपको देखने की आवश्यकता है। और यह आपके लिए ऐसा करने वाली .NET लाइब्रेरी प्रदान करता है।
सबसे पहले, आपको यह निर्धारित करना चाहिए कि .NET 3.5 HKLM \ Software \ Microsoft \ NET फ्रेमवर्क सेटअप \ NDP \ v3.5 \ Install को देखकर स्थापित किया गया है, जो DWORD मान है। यदि वह मान मौजूद है और 1 पर सेट है, तो फ्रेमवर्क का वह संस्करण स्थापित है।
HKLM \ Software \ Microsoft \ NET फ्रेमवर्क सेटअप \ NDP \ v3.5 \ SP को देखें, जो एक DWORD मान है जो सर्विस पैक स्तर (जहाँ 0 कोई सर्विस पैक नहीं है) इंगित करता है।
चीजों के बारे में सही होने के लिए, आपको वास्तव में यह सुनिश्चित करने की आवश्यकता है कि .NET Fx 2.0 और .NET Fx 3.0 पहले स्थापित हैं और फिर देखें कि .NET 3.5 स्थापित है या नहीं। यदि तीनों सत्य हैं, तो आप सर्विस पैक स्तर की जांच कर सकते हैं।
जाँच निम्न निर्देशिका मौजूद है:
64bit मशीनों में:% SYSTEMROOT% \ Microsoft.NET \ Framework64 \ v3.5 \ Microsoft .NET फ्रेमवर्क 3.5 SP1 \
32bit मशीनों में:% SYSTEMROOT% \ Microsoft.NET \ Framework \ v3.5 \ Microsoft .NET फ्रेमवर्क 3.5 SP1 \
जहाँ% SYSTEMROOT%, SYSTEMROOT एन्वीरोमेंटल वैरिएबल (जैसे C: \ Windows) है।
यह मानते हुए कि नाम हर जगह "Microsoft .NET फ्रेमवर्क 3.5 SP1" है, आप इसका उपयोग कर सकते हैं:
string uninstallKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
using (RegistryKey rk = Registry.LocalMachine.OpenSubKey(uninstallKey))
{
return rk.GetSubKeyNames().Contains("Microsoft .NET Framework 3.5 SP1");
}