【发布时间】:2019-02-25 15:22:11
【问题描述】:
诚然,对于 DotNet 核心生态系统来说仍然很新。
我为要移植到 DotNet 核心的框架设置了一个包含多个类库的解决方案。
我让他们针对 Core 2.1 (netcoreapp2.1)。
我通过 NuGet 安装了 Microsoft.EntityFrameworkCore 包 (v2.2)。
在本地,一切都可以正常构建和运行。
构建定义 (Azure DevOps) 失败,因为 NuGet 不会提取 EntityFrameworkCore 包。具体来说:
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.
答案似乎很明显 - 但我对此感到困惑。 DotNet 核心支持 NET Standard 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>
更新 -
我升级到 DotNet Core 2.2。仍然遇到这个问题。
【问题讨论】:
-
您可以发布您的纯化 .csproj 吗?
-
发布了其中一个文件。
-
您是否运行过 dotnet restore/NuGet 恢复?我知道它在文档中说您不需要,但我以前必须这样做。我们的 Azure DevOps 在构建之前运行任务。请问您为什么没有升级到.NET Core 2.2?我们目前正在完成的任务很好。
-
我在构建定义中有一个 nuget restore 任务。那就是发生错误的地方。当它为其中一个项目提取 EF 包时 - 我收到兼容性错误。至于升级 - 我刚刚开始执行此任务(移植)。我会尝试一下,看看我们是否会得到不同的结果。
-
如果很明显,为什么不尝试将 Microsoft.EntityFrameworkCore 降级到较低版本?
标签: .net-core msbuild azure-devops