2015-07-28 74 views
36

我在Visual Studio 2015中創建了新的ASP.NET 5 MVC項目。在項目創建嚮導中,我選擇了顯示.NET框架4.6然後在下一個屏幕上從ASP.NET 5 Preview Templates中選擇「Web Application」。VS 2015.爲ASP.NET 5 Web項目設置正確的目標框架

然而,在創建之後出現,該項目在「框架」 project.json的部分只列出「dnx451」和「dnxcore50」:

"frameworks": { 
    "dnx451": { }, 
    "dnxcore50": { } 
    }, 

我試圖改變「dnx451」到「 dnx46" 。該項目已經建好,但是當我嘗試運行它時,我收到以下錯誤消息:

當前運行時目標框架與'...'不兼容。

當前運行的目標框架: 'DNX,版本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的不同版本

+0

你有什麼在global.json?如果你右鍵點擊項目並選擇屬性,你有沒有在那裏檢查特定的框架?查看更多的project.json以查看主要的依賴關係可能有助於診斷錯誤 –

+0

我已經更新了初始文章並將global.json的內容添加到其中。 但是我已經試圖改變那裏列出的「sdk」的版本 - 但它沒有幫助。 – Sergiy

+0

你沒有顯示project.json的依賴部分。 beta6本來應該是昨天發佈的,它似乎在nuget feed中,但目前還沒有發佈公告,我認爲應該是VS 2015的相應工具更新。目前我會使用beta5直到更多關於beta6發佈的新聞 –

回答

54

問題是,DNX知道您的項目是針對dnx46,但IIS不是:)。因此,IIS從.NET 4.5.1開始(默認情況下)並嘗試加載與4.5.1不兼容的項目。

在VS工具的未來版本中,我們要做的檢測,但在那之前,一切的Web應用程序有點粗糙希望針對.NET版本以上 4.5.1做得更好。現在,我建議在此之前使用dnx451(如果您不依賴於.NET 4.5.2/4.6的功能),但是我會在下面提供一些關於如何在今天完成這項工作的說明,如果您需要使用4.5。 2或更高。

注:dnx452dnx46在控制檯應用程序完全支持和使用IIS以外的服務器(如紅隼或WebListener)時。基本上,任何可以使用本機dnx.exe引導程序啓動的任何東西都可以與dnx451dnx46一起使用,但其他宿主環境(IIS,IIS Express)需要其他提示才能啓動正確的框架。

爲了今天能夠完成這項工作,您需要將環境變量DNX_IIS_RUNTIME_FRAMEWORK設置爲您要使用的目標框架。您可以在「調試」選項卡上的Web應用程序的「項目屬性」頁面中執行此操作。只要選擇IIS Express配置文件,並添加如下環境變量:

Launch Profile

我們要得到這個加到Known Issues,因爲它看起來像我們錯過了,正如我上面所說的,我們將會改善VS的默認體驗,所以這不是必須的:)。

+0

這是我的最終解決方案,謝謝安德魯! – MisterJames

+0

謝謝你的詳細解釋。 很高興知道這不是我的錯:) – Sergiy

+0

@Andrew護士我需要卸載beta5這個工作嗎?顯然,儘管我努力使用特定的運行時(beta6) – Dbl

2
"DNX_IIS_RUNTIME_FRAMEWORK" : "DNX46" 

值是區分大小寫

+1

從我已閱讀的DNX框架識別消失。在閱讀了這兩篇文章http://www.hanselman.com/blog/ASPNET5IsDeadIntroducingASPNETCore10AndNETCore10.aspx .... https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/standard-platform。 MD – DRobertE

相關問題