Dot-Net

確定是否安裝了 .NET 3.5 的最佳方法

  • October 23, 2009

我需要以程式方式確定是否安裝了 .NET 3.5。我認為這很容易:

<% Response.Write(Environment.Version.ToString()); %>

返回“2.0.50727.1434”所以沒有這樣的運氣……

在我的研究中,我可以查看一些相當晦澀的系統資料庫項,但我不確定這是否是要走的路。有沒有人有什麼建議?

你可以試試:

static bool HasNet35()
{
   try
   {
       AppDomain.CurrentDomain.Load(
           "System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");
       return true;
   }
   catch
   {
       return false;
   }
}

@尼克:好問題,我一會兒試試。

為了

這是因為從技術上講 .NET 3.5 是 2.0 框架的擴展。最快的方法是從 .NET 3.5 中包含一個程序集並查看它是否損壞。

System.Web.Extensions

是一個很好的程序集,只包含在 3.5 版中。此外,您似乎正在使用 ASP.NET 執行此檢查,這確實限制了您,因為您將無法檢查在 ASP.NET 保護模式下執行的文件系統或系統資料庫。或者,您總是可以嘗試從 GAC 載入僅應在 .NET 3.5 中的程序集,但您可能會再次遇到權限問題。

這可能是你問自己“我想要完成什麼?”的時候之一。看看是否有替代路線。

引用自:https://stackoverflow.com/questions/16178