Làm cách nào để tìm hiểu xem SP1 đã được cài đặt trên máy chủ có .NET 3.5 chưa?Làm cách nào để biết liệu .NET 3.5 SP1 có được cài đặt không?
Trả lời
Sử dụng Thêm/xóa chương trình khỏi Bảng điều khiển.
Nhìn vào HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5\
. Một trong số đó phải đúng:
- Giá trị
Version
trong quan trọng mà nên 3.5.30729.01 - Hoặc giá trị
SP
trong cùng một chìa khóa nên
Trong C# (lấy từ nhận xét đầu tiên), bạn có thể làm điều gì đó dọc theo các dòng sau:
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();
const string name = @ "PHẦN MỀM \ Microsoft \ NET Framework Setup \ NDP \ v3.5"; RegistryKey subKey = Registry.LocalMachine.OpenSubKey (tên); var version = subKey.GetValue ("Version"). ToString(); var servicePack = subKey.GetValue ("SP").ToString(); –
Trên máy tính của tôi, 'Phiên bản' là' 3.5.30729.5420' và 'SP' là' 1' –
Trên dòng lệnh: 'truy vấn reg" HKLM \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP \ v3.5 "/ Phiên bản V ' 'truy vấn reg" HKLM \ SOFTWARE \ Microsoft \ .NET Thiết lập khung \ NDP \ v3.5 "/ V SP' –
Bạn có thể truy cập SmallestDotNet bằng trình duyệt IE từ máy chủ. Điều đó sẽ cho bạn biết phiên bản và cũng cung cấp liên kết tải xuống nếu bạn đã lỗi thời.
Chỉ cho bạn biết phiên bản cao nhất, ví dụ: nếu bạn có 4, nó sẽ không nói cho bạn biết bạn cũng có 3,5 sp 1 – codeulike
Giả sử rằng tên của nó là ở khắp mọi nơi "Microsoft .NET Framework 3.5 SP1", bạn có thể sử dụng này:
string uninstallKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
using (RegistryKey rk = Registry.LocalMachine.OpenSubKey(uninstallKey))
{
return rk.GetSubKeyNames().Contains("Microsoft .NET Framework 3.5 SP1");
}
+1, cách dễ nhất cho đến nay để kiểm tra theo chương trình nếu 3,5 SP1 được cài đặt - thực sự, nếu nó hoạt động. Tôi đã thử nó, nó không có tác dụng với tôi, nó luôn trả về sai. –
Lướt qua bộ sưu tập được trả về bởi GetSubKeyNames(), tên văn bản thuần túy được sử dụng cho một số sản phẩm, đối với một số sản phẩm - như khung .net, id sản phẩm {1ea1f -...} đang được sử dụng. Đó là lý do tại sao nó không thể được tìm thấy. –
Hãy xem article này trong đó cho thấy các khóa registry bạn cần phải tìm kiếm và cung cấp một Thư viện .NET sẽ làm điều này cho bạn.
Trước tiên, bạn nên xác định xem .NET 3.5 có được cài đặt hay không bằng cách xem HKLM \ Software \ Microsoft \ NET Framework Cài đặt \ NDP \ v3.5 \ Install, đây là giá trị DWORD. Nếu giá trị đó hiện diện và được đặt thành 1, thì phiên bản của Khung được cài đặt.
Xem HKLM \ Software \ Microsoft \ NET Framework Thiết lập \ NDP \ v3.5 \ SP, là giá trị DWORD cho biết cấp Gói dịch vụ (trong đó 0 không có gói dịch vụ).
Để chính xác về mọi thứ, bạn thực sự cần đảm bảo rằng .NET Fx 2.0 và .NET Fx 3.0 được cài đặt trước và sau đó kiểm tra xem .NET 3.5 đã được cài đặt chưa. Nếu cả ba đều đúng, thì bạn có thể kiểm tra mức gói dịch vụ.
liên kết bài viết được thay đổi, đây là vị trí mới: http://www.codeproject.com/KB/dotnet/frameworkversiondetection.aspx – Drake
Kiểm tra được thư mục sau tồn tại:
Trong máy 64bit: % SYSTEMROOT% \ Microsoft.NET \ Framework64 \ v3.5 \ Microsoft .NET Framework 3.5 SP1 \
Trong máy 32bit: % SYSTEMROOT% \ Microsoft.NET \ Framework \ v3.5 \ Microsoft Khuôn khổ .NET 3.5 SP1 \
Trường hợp% SYSTEMROOT% là biến môi trường SYSTEMROOT (ví dụ: C: \ Windows).
Tôi đã truy cập trang này trong khi tìm cách phát hiện các phiên bản khung được cài đặt trên máy chủ mà không truy cập máy tính từ xa hoặc đăng ký, vì vậy câu trả lời của Danny V đã làm việc cho tôi.
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);
}
}
Làm việc như mong đợi đối với tôi. Chỉ cần tạo một dự án trang web mới, thêm mã và đặt nó vào phần chia sẻ, sau đó yêu cầu trang. – XIII
con số đi. Sau đó, tôi nghĩ rằng tôi đã bỏ lỡ một điểm "lập trình" cho câu hỏi của bạn, Guy. –