2017-05-29 184 views
0

我有一個ASP.NET MVC 5項目,Web.config中的以下目標框架設置爲.NET 4.6.2,但TargetFrameworkName顯示.NET 4.5

<compilation debug="true" targetFramework="4.6.2">

<supportedRuntime version=".NETFramework,Version=v4.6.2" />

但是,在兩個IIS Express和IIS上,AppDomain.CurrentDomain.SetupInformation.TargetFrameworkName都返回.NETFramework,Version=v4.5而不是4.6.2。

如何讓AppDomain加載.NET 4.6.2而不是4.5?

回答

0

當升級從.NET 4.5的項目通過項目屬性對話框.NET 4.6.2,Visual Studio中只改變compilation targetFramework。然而,httpRuntime targetFramework保留在4.5。

compilation targetFramework="4.6.2"編譯我的代碼與.NET 4.6.2,但是當IIS運行時,它讀取httpRuntime targetFramework="4.5",因此在.NET 4.5中運行。

0

您是否在安裝了4.6.2的計算機上運行IIS?我認爲4.6.2可能沒有安裝在IIS安裝的服務器/機器上。如果您已經在服務器機器中安裝了4.6.2,那麼您可以按照以下步驟在IIS中設置目標框架。

要爲應用程序池

  1. 打開IIS管理器指定.NET Framework版本。有關打開IIS管理器的信息,請參閱打開IIS管理器(IIS 7)。
  2. 在連接窗格上,展開服務器節點並單擊應用程序池。
  3. 在「應用程序池」頁面上,選擇要爲其指定.NET Framework版本的應用程序池,然後單擊「操作」窗格中的「基本設置」。
  4. 在編輯應用程序池對話框的.NET Framework版本列表中,選擇希望應用程序池使用的版本,或者如果應用程序僅使用本機代碼,請選擇「無託管代碼」。
  5. 單擊確定。

來源: - Microsoft

+0

已安裝.NET 4.6.2。應用程序池僅顯示.NET CLR版本v4.0.30319,Microsoft文檔始終聲明4.6.2是就地升級,因此所顯示的版本號不會更改。但是,不同的.NET框架之間會有行爲變化,我想選擇4.6.2中的那些 –