![](/img/trans.png)
[英]Upgrading ASP.NET MVC Web App from .NET Framework 4.5 to 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.