簡體   English   中英

Asp.NET MVC應用程序是使用.net Framework 4.5版構建的,我想在更高的.net框架4.7.2上運行該應用程序

[英]An Asp.NET MVC application is built with .net framework version 4.5, I want to run the application on a higher .net framework that is 4.7.2

您可以在以下查詢中為我提供幫助嗎? Asp.NET MVC應用程序是用.net Framework 4.5版構建的,我想在更高的.Net Framework v4.7.2版上運行該應用程序。

如果僅在web.config文件中更改版本,它將起作用嗎? 或者我也必須在Visual Studio中使用更高版本來構建應用程序?

提前致謝。

目標框架

除了與運行時直接相關的CLR之外,targetFramework還將告訴.NET它應該針對哪些程序集。

<compilation targetFramework="4.x.x"/>

選擇在執行編譯時使用哪個版本的.NET Framework參考程序集。 (注意:即使我們自動推斷,Visual Studio要求該元素也必須存在於Web.config中。)

<httpRuntime targetFramework="4.x.x"/>

引入它是為了執行您想要的操作:使用4.5開發的應用程序選擇4.7行為。 請注意,您可能有一些行為,但這不是魔術:)(即使您的情況為4.5至4.7,恕我直言也不成問題)。

此屬性的作用是雙重的。 首先,它控制CLR的怪癖模式行為,就像<supportedRuntime>元素在控制台應用程序中所做的一樣。 其次, <httpRuntime targetFramework="4.5" />是允許ASP.NET運行時推斷各種配置設置的快捷方式。

檢查https://blogs.msdn.microsoft.com/webdev/2012/11/19/all-about-httpruntime-targetframework/

裝配裝訂

web.config還具有組裝綁定 ,它旨在將一系列程序集版本綁定到特定版本。

問題是.NET Framework程序集(不是.NET Core程序集)基於CLR版本。 據我所知,框架中包括的所有程序集(不是像MVC這樣的附屬程序)都是4.0.0.0 因此,您無法將4.x Framework程序集綁定到4.7 framework因為它們將具有相同的程序集版本。

但是您可以綁定外部(NuGet)依賴項。

無論如何 ,除非您具有安裝了不同框架的不同Web服務器配置,否則最干凈的方法是通過更改Visual Studio項目屬性中的目標框架來重新編譯應用程序。

我強烈建議對Visual Studio中的PROJECT屬性進行更改(在解決方案資源管理器中,右鍵單擊“項目” |“屬性” |“目標框架”(下拉列表);

如果查看項目文件(.csproj)的標記,您將看到其中引用的目標框架(作為項目設置的結果)。 目標為4.6.1的* .csproj文件中的代碼段:

    **<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>**
<MvcBuildViews>false</MvcBuildViews>
<UseIISExpress>false</UseIISExpress>

更改web.config不會/不會,AFAIK不會以任何方式影響此值(並因此影響任何生成的程序集)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM