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
的更多详细信息?这对您来说似乎很明显,但我们需要了解您所看到的整体情况。
此问题可能与您在 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
VS2019打开项目加载失败:无法找到 .NET Core SDK。请检查确保已安装此项且 global.json 中指定的版本(如有)与所安装的版本相匹配。