对于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。仍然遇到这个问题。
答案 0 :(得分:1)
知道了。
我的构建定义有3个任务(NuGet还原,DotNet构建,MS测试)。
NuGet还原失败。通过下载与Azure Dev Ops使用的相同的NuGet CLI版本(v4.1.0),我现在能够复制它。
运行NuGet恢复-我遇到相同的错误。
将任务更改为dotnet还原可消除此问题。
我想了解点网还原在幕后的作用与NuGet的不同。