【问题标题】:Both legacy and current dotnet core version support on Linux or Windows?Linux 或 Windows 上的旧版和当前 dotnet 核心版本都支持吗?
【发布时间】:2017-10-06 05:17:08
【问题描述】:

我有两个 dotnet 核心项目。其中之一使用dotnet 1.0 (Preview 2 build 3131 and 3133),其他使用dotnet 1.1.1。据我所知,我无法使用 dotnet 1.1.1 运行基于 project.json & xproj 的项目,也无法使用 dotnet 1.0 运行基于 csproj 的项目。

我可以将旧的 dotnet core 项目迁移到 csproj。但我正在寻找一种可以在 Windows 或 Linux 中同时处理两个项目的解决方案。

我在 Visual Studio 中编译项目时使用 docker 检查过,找不到任何足够的资源。

谢谢。

【问题讨论】:

  • 所以我们很清楚:如果同时使用 dotnet 1.1(即“当前”)和 cproj 会发生什么?这应该是默认的事情,所以:你为什么不能这样做? (我想如果需要的话使用1.1.1应该没问题)
  • .Net Core 的所有版本都可以在 Windows 和 Linux 上运行。是什么阻止您在任何地方使用最新版本的 .Net Core?

标签: c# .net visual-studio .net-core dotnet-cli


【解决方案1】:

基于 csproj 的工具适用于 .NET Core 1.01.1。还有一个工具 preview2 (project.json/xproj) 构建支持 .NET Core 1.1 (1.0.0-preview2-1-003177)。

关键是工具的版本控制目前独立于 .net 核心运行时的版本,尽管即将发布的 2.0 版本将仅是 csproj,运行时和工具都有2.0 版本。

【讨论】:

  • 感谢您的回答,虽然我的 dotnet cli 版本是 1.0.3 而 dotnet core 版本是 1.1.0,但我不能在具有 xsprojproject.json 的项目中使用 dotnet restore ,错误是error MSB4019,当我检查 Github 问题时,我无法解决问题。但是dotnet restore 非常适合我的另一个具有csproj 的项目。它与我的问题无关,但我也无法在 VS2017 中打开我的旧项目,也无法在 VS2015 中打开我更新的项目。 dotnet cli 和 core 的确切版本应该是什么才能在没有错误的情况下运行它们?
  • 工具支持的版本 (!) 是 1.0+(当前为 1.0.3),它是 VS 2017 的一部分。不再支持 VS 2015(和 1.0.0-preview*) .
【解决方案2】:

首先,您似乎将 .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,.Net Core SDK 1.0.x,它支持 csproj,在 Linux 和 Windows 上都能正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-17
    • 2012-02-20
    • 2017-12-07
    • 1970-01-01
    • 2016-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多