2015-06-15 84 views
4

我有一個新的ASP.NET 5項目,並設置如下的project.json;紅隼跑哪個框架?

"frameworks": { 
    "dnx451": { 
     "dependencies": { 
      "ExternalLibrary": "1.3.0" } 
     }, 
    "dnxcore50": {} 
} 

我正在通過Kestrel使用project.json中定義的默認命令來運行項目。

"kestrel": "Microsoft.AspNet.Hosting --server Kestrel --server.urls http://localhost:5001" 

一切工作正常。該項目運行並且依賴項運行良好。我不明白誰決定使用哪個底層框架?

據我理解,如果紅隼使用dnxcore50項目應該失敗。如果是這種情況,我們如何推Kestrel來使用它?

正如一個側面說明,項目運行,沒有錯誤不錯可言,但是當我嘗試手動建立與DNU的項目中,我得到的錯誤如下。我認爲這點並不重要,因爲在我看到的運行時間內它不會造成故障。只是想添加它,以防它的幫助。

http://pastebin.com/x44VtXct

回答

2

在Visual Studio 2015,所用的框架以該順序被確定:

  1. 的項目屬性。右鍵單擊解決方案資源管理器中的.xproj,然後選擇「屬性」。前往「應用程序」部分(默認),您可以「使用特定的DNX版本」,包括版本,平臺和體系結構。

  2. 的global.json。我不知道是否該平臺可以在這裏改變,但是,例如:

    "sdk": { 
        "version": "1.0.0-beta6-12032" 
    } 
    
  3. Visual Studio中默認使用依賴於它的版本具體的運行時間。我相信VS 2015 RC默認使用beta4,.Net Framework,x64。

從命令行運行時,它由您的活動dnvm決定。您可以使用命令dnvm list來顯示已安裝的VM。你會得到類似如下列表:

Active Version   Runtime Architecture Location     Alias 
------ -------   ------- ------------ --------     ----- 
     1.0.0-beta4  clr  x64   C:\Users\Matt\.dnx\runtimes 
     1.0.0-beta4  clr  x86   C:\Users\Matt\.dnx\runtimes 
     1.0.0-beta4  coreclr x64   C:\Users\Matt\.dnx\runtimes 
     1.0.0-beta4  coreclr x86   C:\Users\Matt\.dnx\runtimes 
     1.0.0-beta4-11566 clr  x86   C:\Users\Matt\.dnx\runtimes 
     1.0.0-beta5-11855 clr  x64   C:\Users\Matt\.dnx\runtimes 
     1.0.0-beta5-11855 clr  x86   C:\Users\Matt\.dnx\runtimes 
     1.0.0-beta5-11855 coreclr x64   C:\Users\Matt\.dnx\runtimes 
     1.0.0-beta6-11921 clr  x64   C:\Users\Matt\.dnx\runtimes 
     1.0.0-beta6-11921 clr  x86   C:\Users\Matt\.dnx\runtimes x64 
     1.0.0-beta6-12005 clr  x64   C:\Users\Matt\.dnx\runtimes 
     1.0.0-beta6-12005 clr  x86   C:\Users\Matt\.dnx\runtimes 
    * 1.0.0-beta6-12032 clr  x64   C:\Users\Matt\.dnx\runtimes default 
     1.0.0-beta6-12032 clr  x86   C:\Users\Matt\.dnx\runtimes 

*表明當前的虛擬機。 coreclr使用dnxcore50,和其他人(可能mono在Mac上)使用相應的框架,但似乎編譯爲dnx451

+0

不幸的是我沒有使用Visual Studio。我在Mac上。 我使用的DNVM是版本1.0.0-beta5-10375。我怎麼知道這個人使用哪個平臺?這有點奇怪,因爲project.json建議我可以爲dnxcore和dnx451分配不同的依賴關係。兩者如何在我機器上的當前DNVM版本上工作?它不覺得dnxcore vs dnx451與DNVM版本有關。我的2美分。 –

+0

請參閱更新的答案 - 我提供了有關查看有關虛擬機的更多詳細信息的說明。每個虛擬機還有「平臺」(又名運行時)和架構。 –

+0

1.0.0-BETA4單〜/ .dnx /運行時默認 你是對的。這是我的。回到我的問題,通過mono,dnxcore50或dnx451運行什麼?我如何指定?簡單地說,我試圖瞭解如何在兩個平臺上運行這兩個運行時並測試MAC上的本地站點。有任何想法嗎? 感謝您提供的所有信息。這非常有幫助。 –