如果我的项目使用的是现在已经过时的依赖项,我想在某处发出大声警告(可能我可能会将其挂钩到我们的构建中,因此使用某些过时的依赖项的构建会自动失败并且无法部署)
如果可能的话,我只想对我们其他内部项目的依赖开始这样做,这样如果我发布新版本的共享内部库,那么使用该库的所有其他项目都会被大声通知/要求更新到新的,但我们不必在每次升级时立即升级到最新版本的实体框架。
有没有办法从包管理器控制台或MSBuild任务轻松检查我的NuGet依赖项的全部或部分是最新的?
答案 0 :(得分:3)
您可以在NuGet上获取所有已安装软件包和最新版本的列表。
我创建了一个PowerShell脚本来执行此操作。你可以在这里找到它:
答案 1 :(得分:2)
如果需要,可以手动查询NuGet的公共API以检索包信息。他们有一个更新的JSON api,我可以在NodeJS应用程序中使用它们,并且它们有一个较旧的XML api。
https://api.nuget.org/v3/index.json
软件包的所有版本: https://api.nuget.org/v3/registration0/newtonsoft.json/index.json
版本的特定包: https://api.nuget.org/v3/registration0/newtonsoft.json/4.0.1.json
(请注意,网址中的包ID必须全部小写!)
所有套餐(分页-first 100):https://www.nuget.org/api/v2/Packages
下一页100: https://www.nuget.org/api/v2/Packages?$跳过= 100
版本的特定包:https://www.nuget.org/api/v2/Packages(Id='NewtonSoft.Json',Version='4.0.1')
使用XML版本我不知道列出包的所有版本的方法,但是当您访问版本化包时,<d:IsLatestVersion>
和<d:IsAbsoluteLatestVersion>
的布尔值(我'我不知道有什么不同......也许一个排除预发布版本?)
答案 2 :(得分:1)
另一种选择是订阅位于该页面底部nuget.org软件包网页中的RSS feed。