【问题标题】:NetCore project does not publish, keeps giving error of versioning mismatchNet Core 项目没有发布,一直报版本不匹配的错误
【发布时间】:2019-02-27 08:02:58
【问题描述】:

我有一个 asp.net 核心项目,它支持所有 .net 核心版本 2.2 中的库。它们运行,我可以调试,它们也在发布模式下工作。但是,当我尝试发布它们时,我会得到一个错误列表。主要原因显示为web项目:

错误 NU1202:包 Microsoft.NETCore.App 2.2.0 与 netcoreapp2.1 (.NETCoreApp,Version=v2.1) 不兼容。包 Microsoft.NETCore.App 2.2.0 支持:netcoreapp2.2 (.NETCoreApp,Version=v2.2)

之后,对于 Web 项目在解决方案中引用/使用的每个项目,此错误都会不断重复。

我已经验证了依赖关系,这是我在 web 项目中看到的:

还有这个:

如您所见,该项目引用了最新版本 2.2.0。所以我不知道它在哪里选择这个netcoreapp2.1?

如果这是配置的问题,为什么在调试和发布构建甚至调试期间不会出现此错误。请注意,我的发布是基于 Release 构建的,它使用 netcore 2.2 作为框架依赖。

这就是我运行 dotnet --list-runtimes 得到的结果

  • Microsoft.AspNetCore.All 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  • Microsoft.AspNetCore.All 2.1.7 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  • Microsoft.AspNetCore.All 2.1.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  • Microsoft.AspNetCore.All 2.2.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  • Microsoft.AspNetCore.All 2.2.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  • Microsoft.AspNetCore.All 2.2.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  • Microsoft.AspNetCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  • Microsoft.AspNetCore.App 2.1.7 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  • Microsoft.AspNetCore.App 2.1.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  • Microsoft.AspNetCore.App 2.2.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  • Microsoft.AspNetCore.App 2.2.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  • Microsoft.AspNetCore.App 2.2.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  • Microsoft.AspNetCore.App 3.0.0-preview-18579-0056 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  • Microsoft.NETCore.App 2.0.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  • Microsoft.NETCore.App 2.1.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  • Microsoft.NETCore.App 2.1.8 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  • Microsoft.NETCore.App 2.2.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  • Microsoft.NETCore.App 2.2.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  • Microsoft.NETCore.App 2.2.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  • Microsoft.NETCore.App 3.0.0-preview-27122-01 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  • Microsoft.WindowsDesktop.App 3.0.0-alpha-27128-4 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

【问题讨论】:

  • 您可以添加有关您的发布的详细信息吗? RuntimeIdentifier 以及来自.csproj 的更多详细信息?这对您来说似乎很明显,但我们需要了解您所看到的整体情况。
  • netcoreapp2.2win-x64

标签: visual-studio-2017 publish


【解决方案1】:

此问题可能与您在 Visual Studio 中的发布设置有关。您有两种方法可以解决此问题。

选项A。直接编辑文件夹\Properties\PublishProfiles下的文件FolderProfile.pubxml,将目标框架从2.1改为2.2:

<TargetFramework>netcoreapp2.2</TargetFramework>

或

选项 B. 转到发布菜单并单击配置...似乎只需转到菜单并单击保存即可解决问题,因为菜单默认为项目默认 2.2。

希望这能解决您的问题。

【讨论】:

  • 你的解释很有道理。这就是我为解决这个问题所做的。强行保存它。
  • 我真的不敢相信这有效。它已经正确设置,但重新打开配置发布设置窗口并单击保存完成了这项工作。
【解决方案2】:

我认为你安装的runtime是.net core hosting 2.1。

您应该下载dotnet runtime 2.2或更高版本。

【讨论】:

  • 它已经安装好了,我也安装了3.0预览版,但仍然出现同样的问题。
  • dotnet --list-runtimes 的输出是什么?
  • 无法在 cmets 中粘贴...太长了
  • 你应该添加到答案中,你不必全部粘贴,只需粘贴相关的运行时(2.1及更高版本)。
  • 好的,我将其添加到问题中。顺便说一句,我能够通过在发布文件中进行一些更改并保存它来解决这个问题。然后将其还原并再次保存。所以技术上根本没有变化,但项目成功发布。适用于所有发布配置文件。我现在对此更加困惑
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-11
  • 2018-01-07
  • 1970-01-01
  • 2020-08-28
  • 2011-01-15
  • 2011-03-07
  • 1970-01-01
相关资源
最近更新 更多