我正在开发大型企业应用程序,其中包的自动更新存在问题。
我想开始手动更新它们,但我想知道优先级:我想从最过时的版本开始,其中最新稳定版本的发布日期与我正在使用的版本之间的差异最大。
有脚本或工具可以帮助我解决这个问题吗?
打开您的解决方案。
打开 Nuget 包管理器控制台。
运行此 PowerShell 脚本:
#Creates a CSV file of Packages in your solution which have updates available.
Get-Package -Updates | Select-Object -Property ID -ExpandProperty Versions | Select-Object -Property ID, Major, Minor, Patch, Revision | Export-Csv -Path UpdatesAvailable.csv -NoTypeInformation
#Creates a CSV file of all the Packages in your solution
Get-Package | Select-Object -Property ID, ProjectName -ExpandProperty Versions | Select-Object -Property ID, ProjectName, Major, Minor, Patch, Revision | Export-Csv -Path Installed.csv -NoTypeInformation
启动 Excel 并使用 Power Query 导入 CSV 文件。这应该会产生两个查询,我们将其称为“已安装”和“已合并”。
从“Installed”和“Merged”创建合并查询并加入“Id”
在 Excel 中,在标记为“MajorDiff”、“MinorDiff”和“PatchDiff”的结果表旁边添加 3 列。
在每一列中,添加如下公式:
=MAX([@[Latest.Major]]-[@[Installed.Major]],0)
最后,计算加权差异:
=([@MajorDiff]*100) + ([@MinorDiff]*10) + [@PatchDiff]
现在您知道哪些项目使用了哪些过时的软件包以及这些软件包过时的严重程度。