当nuget软件包的版本优于运行时的版本时,如何还原它们?

时间:2019-05-24 15:18:53

标签: .net-core nuget-package

我已经从 Azure DevOps 克隆了此解决方案。据我的同事说,它在云中运行良好。当我使用Visual Studio 2019打开它时,它并没有还原所有的块包。该项目的目标是 netcore 2.1 ,当我将目标更改为 netcore 2.2 时,它将还原,构建并运行。

这是项目:

<PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>

//...

<ItemGroup>
     <PackageReference Include="Microsoft.AspNetCore.App" />
     <PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.2.1" />
     <PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="2.2.1" />
     <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.2.1" />
     <PackageReference Include="Microsoft.Extensions.Logging.AzureAppServices" Version="2.2.0" />
     <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="2.2.0" />
     <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.2.1" />
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.2.0-preview1-final" />
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.1.0-preview1-final" />
 </ItemGroup>

在这里可以看到,目标是 2.1 ,而许多软件包都在2.2.0或更高版本中。

我的问题是要知道除针对 2.2 框架之外,是否还有另一种在本地制作此项目的方法?

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

是的,您可以打开nuget Manager并更改软件包版本2.1或所需的方式。或者,您可以像

一样更改csproj
ItemGroup>
     <PackageReference Include="Microsoft.AspNetCore.App" />
     <PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.1.0" />
 </ItemGroup>

我认为这样做很冒险,因为某些方法的内容,名称,参数等可能已更改,或者2.2版的软件包中可能包含新功能,而它们不适用于2.1版。