2017-05-08 54 views
0

我有兩個dotnet核心項目。其中一個使用dotnet 1.0Preview 2 build 3131 and 3133)和其他用途dotnet 1.1.1。據我所知,我無法使用dotnet 1.1.1運行基於project.json & xproj的項目,也無法使用dotnet 1.0運行基於csproj的項目。在Linux或Windows上支持傳統和當前的dotnet核心版本嗎?

我可以將傳統的dotnet核心項目遷移到csproj。但我正在尋找一種解決方案,可以在Windows或Linux上的兩個項目中工作。

我在Visual Studio中編譯項目時使用docker進行了檢查,但無法找到任何足夠的資源。

謝謝。

+0

因此,我們很清楚:如果對兩者都使用dotnet 1.1(即「current」)和cproj,會發生什麼?這應該是默認的做法,所以:爲什麼你不能這樣做? (我猜如果你需要它可以使用1.1.1) –

+0

所有版本的.Net Core都可以在Windows和Linux上運行。什麼阻止你在任何地方使用最新版本的.Net Core? – svick

回答

1

首先,您似乎將.Net Core的版本與.Net Core SDK的版本混淆。

.Net Core的版本(例如1.0.4或1.1.1)與project.json和csproj之間的差異沒有直接關係。這是運行時本身的版本。只需編輯項目文件,即可在同一臺機器上輕鬆切換不同版本的.Net Core。

.Net Core SDK(例如Preview 2 build 3131或1.0.3)的版本決定了您可以使用哪種項目格式。 SDK Preview 2僅支持project.json,SDK 1.0.x僅支持csproj。您可以在同一臺機器上安裝多個SDK版本,因此同時支持兩種項目格式。但是,如果您想這樣做,則需要使用global.json爲每個項目指定SDK的版本。

對於Visual Studio,VS 2015只支持project.json,而VS 2017只支持csproj(但應該能夠遷移project.json項目)。

這就是說,我沒有看到任何理由你應該繼續使用project.json,支持csproj的.Net Core SDK 1.0.x,在Linux和Windows上都能正常工作。

1

基於csproj的工具可與.NET Core 1.01.1一起使用。還有一個工具preview2(project.json/xproj)內部版本,支持.NET Core 1.11.0.0-preview2-1-003177)。

問題是工具的版本與目前的.net核心運行時的版本無關,儘管即將發佈的2.0版本只有csproj,運行時和工具版本都是2.0

+0

感謝您的回答,儘管我的dotnet cli版本是'1.0.3',而dotnet核心版本是'1.1.0',我不能在具有'xsproj'和'project.json'的項目中使用'dotnet restore' ,錯誤是'錯誤MSB4019',當我檢查Github問題時,我無法解決問題。然而'dotnet restore'對於我的另一個有'csproj'的項目來說非常有用。這與我的問題無關,但也無法在VS2017中打開我的遺留項目,也無法在VS2015中打開我的更新項目。 dotnet cli和core的確切版本應該如何運行而不會出現錯誤? – skynyrd

+1

支持的工具版本(!)是1.0+(目前是1.0.3),它是VS 2017的一部分。不再支持VS 2015(和1.0.0-preview *)。 –

相關問題