首页 > 解决方案 > 如何实现数十种解决方案的完整 NuGet 重装?

问题描述

我们在一个存储库中有几十个解决方案,我们将每个项目重新定位到net472from net462. 目前我们最好的选择是在 Visual Studio 中打开每个解决方案,并在包管理器控制台中执行以下命令。

Update-Package -Reinstall -IgnoreDependencies

据我所知,PM控制台不能在Visual Studio之外使用,所以这种方法当然效率不高,所以我想的是使用该nuget.exe工具。但是乍一看,我找不到任何等效的操作或参数集。

此时的文档说明了以下内容

对于所有包,删除包文件夹,然后运行 ​​nuget install。对于单个包,删除包文件夹并使用 nuget install 重新安装相同的包。

因此,基于此,我尝试删除该packages文件夹并nuget install为一个项目运行,因此我希望它会重新安装。但是,虽然它确实安装了包(to packages),但它并没有触及packages.config(用于重定向)。

有没有人知道任何可能的方法来自动化这个过程?

标签: c#visual-studionuget

解决方案


如何使用 nuget.exe CLI 实现完整的 NuGet 重新安装?

该命令无法得到你想要的。

据我所知nuget install应该是packages.config文件,它不会packages.config自动更新文件的nuget框架版本。

在此处输入图像描述

因此,无论何时更改项目的目标框架版本,使用该命令都不会更新 nuget 包的目标框架版本。

所以只有包管理器控制台update-package -reinstall下的命令会更新文件的目标框架版本。packages.config

而且包管理器控制台也无法访问多个解决方案,因此您必须打开每个解决方案才能运行该命令。

虽然使用 PowerShell 脚本也许可以实现您的期望,但它过于复杂,因此更容易打开每个解决方案然后运行命令。

作为一个建议

1)在VS上打开每个解决方案来运行update-package -reinstall命令。

2 )从 packages.config 迁移到 PackageReference可能是一个不错的选择。在这种情况下,nuget 包会自动适配对应的项目目标框架版本。

在此之前,您可以备份您的项目。

3)如果这些都不能满足您的要求,您可以在我们的用户语音论坛上建议一个功能来报告您对自动化的渴望。之后,您可以在此处分享链接,任何对此感兴趣的人都会对其进行投票,以便获得微软的更多关注。


推荐阅读