Net Core 项目没有发布,一直报版本不匹配的错误

Posted

技术标签:

【中文标题】Net Core 项目没有发布,一直报版本不匹配的错误【英文标题】:NetCore project does not publish, keeps giving error of versioning mismatch 【发布时间】: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 【参考方案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及更高版本)。 好的,我将其添加到问题中。顺便说一句,我能够通过在发布文件中进行一些更改并保存它来解决这个问题。然后将其还原并再次保存。所以技术上根本没有变化,但项目成功发布。适用于所有发布配置文件。我现在对此更加困惑

以上是关于Net Core 项目没有发布,一直报版本不匹配的错误的主要内容,如果未能解决你的问题,请参考以下文章

Net Core 多项目开发(net core 类库项目使用)

ef core一直报Sequence contains more than one matching element

Asp.Net Core

VS2019打开项目加载失败:无法找到 .NET Core SDK。请检查确保已安装此项且 global.json 中指定的版本(如有)与所安装的版本相匹配。

Ubuntu ARM64下的.NET Core 踩坑记录

开源Asp.Net Core小型社区系统