首页 > 解决方案 > 当这些包的版本优于运行时的版本时,如何恢复 nuget 包?

问题描述

我从Azure DevOps克隆了这个解决方案。据我的同事说,它在云中运行良好。当我使用 Visual Studio 2019 打开它时,它并没有恢复所有的 nugget 包。该项目的目标是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框架之外,是否还有另一种方法可以在本地制作这个项目?

感谢您的帮助

标签: .net-corenuget-package

解决方案


是的,您可以打开 nuget 管理器并更改包版本 2.1 或您想要的方式。或者你可以改变csproj

ItemGroup>
     <PackageReference Include="Microsoft.AspNetCore.App" />
     <PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.1.0" />
 </ItemGroup>

我认为这是有风险的,因为某些方法内容、名称、参数等可能已经更改,或者新功能可能包含在 2.2 版软件包中,它们不适用于 2.1 版。


推荐阅读