VS 2015. 為 ASP.NET 5 web 項目設置正確的目標框架
我在 Visual Studio 2015 中創建了新的 ASP.NET 5 MVC 項目。在項目創建嚮導中,我選擇顯示 .NET framework 4.6 的模板,然後在下一個螢幕上從 ASP.NET 5 Preview 中選擇“Web Application”模板。
但是,在創建後,該項目似乎在 project.json 的“框架”部分中僅列出了“dnx451”和“dnxcore50”:
"frameworks": { "dnx451": { }, "dnxcore50": { } },我試圖將“dnx451”更改為“dnx46”。該項目已經建構良好,但是當我嘗試執行它時,我收到以下錯誤消息:
目前執行時目標框架與“…”不兼容。
目前執行時目標框架:‘DNX,Version=v4.5.1 (dnx451)’ 類型:CLR 架構:x86 版本:1.0.0-beta5
如何更改 ASP.NET 5 項目的“目標框架”?
這是我的 global.json 現在:
{ "projects": [ "src", "test", "wrap" ], "sdk": { "version": "1.0.0-beta5", "runtime": "clr", "architecture": "x86" } }但那裡列出的內容並不重要。我已經嘗試過不同版本的 1.0.0-beta5 和最新的 1.0.0-beta6
問題是 DNX 知道您的項目是針對的
dnx46,但 IIS 不是:)。因此,IIS 以 .NET 4.5.1(預設)開始並嘗試載入與 4.5.1 不兼容的項目。在 VS Tooling 的未來版本中,我們將更好地檢測到這一點,但在那之前,對於想要針對4.5.1**以上版本的 .NET 版本的 Web 應用程序來說,情況有些困難。**現在,我建議在
dnx451此之前使用(如果您不依賴 .NET 4.5.2/4.6 功能),但如果您需要使用 4.5.2,我將在下面提供一些說明,說明如何在今天完成這項工作或更高。注意:
dnx452並且在控制台應用程序和使用 IIS 以外的伺服器(例如 Kestrel 或 WebListener)時dnx46完全**支持。**基本上,您可以使用本機dnx.exe引導程序啟動的任何內容都可以使用dnx451,dnx46但是其他託管環境(IIS、IIS Express)需要額外的提示來啟動正確的框架。為了在今天完成這項工作,您需要為
DNX_IIS_RUNTIME_FRAMEWORK要使用的目標框架設置一個環境變數。您可以在 Web 應用程序的“項目屬性”頁面中的“調試”選項卡上執行此操作。只需選擇 IIS Express 配置文件並添加環境變數,如下所示:我們將把它添加到已知問題中,因為看起來我們錯過了它,正如我上面所說,我們將改進 VS 中的預設體驗,所以這不是必需的 :)。
