.net core 实体框架核心不兼容的DotNet核心类库
诚然,对于DotNet核心生态系统来说,它仍然是非常新的 我有一个解决方案,其中包含几个类库,用于将框架移植到dotnetcore 我让他们瞄准核心2.1(netcoreapp2.1) 我已通过NuGet安装了Microsoft.EntityFrameworkCore软件包(v2.2) 在本地,一切都可以正常构建和运行 生成定义(Azure DevOps)失败,因为NuGet不会提取EntityFrameworkCore包。具体而言:.net core 实体框架核心不兼容的DotNet核心类库,.net-core,msbuild,azure-devops,.net Core,Msbuild,Azure Devops,诚然,对于DotNet核心生态系统来说,它仍然是非常新的 我有一个解决方案,其中包含几个类库,用于将框架移植到dotnetcore 我让他们瞄准核心2.1(netcoreapp2.1) 我已通过NuGet安装了Microsoft.EntityFrameworkCore软件包(v2.2) 在本地,一切都可以正常构建和运行 生成定义(Azure DevOps)失败,因为NuGet不会提取EntityFrameworkCore包。具体而言: Package Microsoft.EntityFramew
Package Microsoft.EntityFrameworkCore 2.2.2 is not compatible with netcoreapp2.1 (.NETCoreApp,Version=v2.1). Package Microsoft.EntityFrameworkCore 2.2.2 supports: netstandard2.0 (.NETStandard,Version=v2.0) One or more packages are incompatible with .NETCoreApp,Version=v2.1.
答案似乎显而易见,但我对此感到困惑。dotnetcore支持NET标准2.0
另外,我在本地根本不知道这个问题
更让人困惑的是,如果忽略NuGet错误,构建实际上会成功
除了netcoreapp2.1之外,我是否还需要做些什么来确保项目明确声明它们的目标是netstandard2.0
下面是一个有问题的项目文件
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.2.2" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ACME.Framework.Common\ACME.Framework.Common.csproj" />
<ProjectReference Include="..\ACME.Framework.Entity\ACME.Framework.Entity.csproj" />
</ItemGroup>
</Project>
netcoreapp2.1
更新-
我升级到了dotnetcore2.2。还是有这个问题
把它弄明白了
我的构建定义有3个任务(NuGet还原、DotNet构建、MS测试)
NuGet还原失败。我能够通过下载Azure Dev Ops今天使用的相同CLI版本(v4.1.0)来复制它
正在运行NuGet restore-我收到了相同的错误
将任务更改为dotnet还原可以消除此问题
我想了解dotnetrestore在幕后做的事情与NuGet做的不同 找到了答案
我的构建定义有3个任务(NuGet还原、DotNet构建、MS测试)
NuGet还原失败。我能够通过下载Azure Dev Ops今天使用的相同CLI版本(v4.1.0)来复制它
正在运行NuGet restore-我收到了相同的错误
将任务更改为dotnet还原可以消除此问题
我想了解dotnetrestore在幕后做的事情与NuGet做的不同 你能发布你的.csproj吗?发布了其中一个文件。你运行过dotnet还原/NuGet还原吗?我知道文档中说你不需要,但我以前不得不这么做。我们的Azure DevOps在构建之前运行该任务。请问您为什么没有升级到.NET Core 2.2?我们目前正在处理一些任务,这些任务都很好。我在构建定义中有一个nuget restore任务。这就是错误发生的地方。当它为其中一个项目提取EF包时,我得到了兼容性错误。至于升级,我刚刚开始这个任务(移植)。我将尝试这样做,看看是否得到不同的结果。如果结果明显,为什么不尝试将Microsoft.EntityFrameworkCore降级到更低的版本?您可以发布您的.csproj吗?发布了其中一个文件。您是否运行了dotnet还原/NuGet还原?我知道文档中说你不需要,但我以前不得不这么做。我们的Azure DevOps在构建之前运行该任务。请问您为什么没有升级到.NET Core 2.2?我们目前正在处理一些任务,这些任务都很好。我在构建定义中有一个nuget restore任务。这就是错误发生的地方。当它为其中一个项目提取EF包时,我得到了兼容性错误。至于升级,我刚刚开始这个任务(移植)。我会试试看我们是否会得到不同的结果。如果很明显,为什么不试着将Microsoft.EntityFrameworkCore降级到更低的版本?啊,那个老把戏。是的,我们不得不在dotnet和nuget任务之间交替。为了创建NuGet软件包,我们必须使用dotnet pack并将其发布到我们的vsix服务器,我们必须使用NuGet任务。dotnet restore和NuGet restore之间的区别肯定是关于堆栈溢出的另一个问题。很高兴您能解决它。@Tubs很高兴知道。我刚刚开始部署管道,所以我很高兴您告诉我需要提前在工具之间切换。也许可以帮我省去几个小时的头痛。没问题。这当然很有趣,但两者的结合确实有效。我们有内部的NuGet和VSIX服务器,所以我们必须使用彩虹的所有组合…啊,那个旧的栗子。是的,我们不得不在dotnet和nuget任务之间交替。为了创建NuGet软件包,我们必须使用dotnet pack并将其发布到我们的vsix服务器,我们必须使用NuGet任务。dotnet restore和NuGet restore之间的区别肯定是关于堆栈溢出的另一个问题。很高兴您能解决它。@Tubs很高兴知道。我刚刚开始部署管道,所以我很高兴您告诉我需要提前在工具之间切换。也许可以帮我省去几个小时的头痛。没问题。这当然很有趣,但两者的结合确实有效。我们有内部NuGet和VSIX服务器,所以我们必须使用彩虹的所有组合。。。