ฉันจะทราบได้อย่างไรว่า SP1 ถูกติดตั้งบนเซิร์ฟเวอร์ที่มี. NET 3.5 หรือไม่
ฉันจะทราบได้อย่างไรว่า SP1 ถูกติดตั้งบนเซิร์ฟเวอร์ที่มี. NET 3.5 หรือไม่
คำตอบ:
ใช้เพิ่ม / ลบโปรแกรมจากแผงควบคุม
ดูที่HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5\
. ข้อใดข้อหนึ่งต้องเป็นจริง:
Version
ในคีย์ที่ควรจะ3.5.30729.01SP
ค่าในคีย์เดียวกันควรเป็น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
คุณสามารถไปที่SmlestDotNetโดยใช้ IE จากเซิร์ฟเวอร์ ซึ่งจะบอกเวอร์ชันให้คุณทราบและยังมีลิงก์ดาวน์โหลดหากคุณล้าสมัย
ฉันมาที่หน้านี้ในขณะที่พยายามหาวิธีตรวจจับเวอร์ชันของเฟรมเวิร์กที่ติดตั้งบนเซิร์ฟเวอร์โดยไม่ต้องเข้าถึงเดสก์ท็อประยะไกลหรือรีจิสตรีดังนั้นคำตอบของ Danny V จึงเหมาะกับฉัน
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 Framework Setup \ NDP \ v3.5 \ Install ซึ่งเป็นค่า DWORD หากมีค่านั้นอยู่และตั้งค่าเป็น 1 แสดงว่ามีการติดตั้ง Framework เวอร์ชันนั้น
ดูที่ HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v3.5 \ SP ซึ่งเป็นค่า DWORD ที่ระบุระดับ Service Pack (โดยที่ 0 ไม่ใช่ Service Pack)
เพื่อให้ถูกต้องคุณต้องตรวจสอบให้แน่ใจว่าได้ติดตั้ง. NET Fx 2.0 และ. NET Fx 3.0 ก่อนแล้วจึงตรวจสอบว่ามีการติดตั้ง. NET 3.5 หรือไม่ หากทั้งสามเป็นจริงคุณสามารถตรวจสอบระดับเซอร์วิสแพ็คได้
ตรวจสอบไดเร็กทอรีต่อไปนี้มีอยู่:
ในเครื่อง 64 บิต:% SYSTEMROOT% \ Microsoft.NET \ Framework64 \ v3.5 \ Microsoft .NET Framework 3.5 SP1 \
ในเครื่อง 32 บิต:% SYSTEMROOT% \ Microsoft.NET \ Framework \ v3.5 \ Microsoft .NET Framework 3.5 SP1 \
โดยที่% SYSTEMROOT% คือตัวแปรสภาพแวดล้อมของระบบ SYSTEMROOT (เช่น C: \ Windows)
สมมติว่าชื่อนี้อยู่ทุกหนทุกแห่ง "Microsoft .NET Framework 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");
}