.net-core - 当这些包的版本优于运行时的版本时,如何恢复 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框架之外,是否还有另一种方法可以在本地制作这个项目?
感谢您的帮助
解决方案
是的,您可以打开 nuget 管理器并更改包版本 2.1 或您想要的方式。或者你可以改变csproj
像
ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.1.0" />
</ItemGroup>
我认为这是有风险的,因为某些方法内容、名称、参数等可能已经更改,或者新功能可能包含在 2.2 版软件包中,它们不适用于 2.1 版。
推荐阅读
- google-cloud-platform - 有什么方法可以安全升级 Google Cloud Platform VPC?
- authentication - Java 中的 API Chorus Pro Oauth2 身份验证
- java - Java 计时器显示不正确的时间
- prometheus - 普罗米修斯 | 根据另一个指标过滤查询
- python - 如何使用pybind11在c++中调用python内置函数
- c# - HttpClient 中的 PostAsync 不会将数据发送到我的 webapi
- javascript - AJAX 将变量从范围滑块传递到 PHP 查询
- python - Python - Beautiful Soup 4 - 'NavigableString' 对象没有属性 'find_all'
- linux - 无法在 Ubuntu 上设置 Git
- java - 在 android apk 中从 .jar 库中保存 *.so 库