c# - 如何实现数十种解决方案的完整 NuGet 重装?
问题描述
我们在一个存储库中有几十个解决方案,我们将每个项目重新定位到net472
from net462
. 目前我们最好的选择是在 Visual Studio 中打开每个解决方案,并在包管理器控制台中执行以下命令。
Update-Package -Reinstall -IgnoreDependencies
据我所知,PM控制台不能在Visual Studio之外使用,所以这种方法当然效率不高,所以我想的是使用该nuget.exe
工具。但是乍一看,我找不到任何等效的操作或参数集。
此时的文档说明了以下内容
对于所有包,删除包文件夹,然后运行 nuget install。对于单个包,删除包文件夹并使用 nuget install 重新安装相同的包。
因此,基于此,我尝试删除该packages
文件夹并nuget install
为一个项目运行,因此我希望它会重新安装。但是,虽然它确实安装了包(to packages
),但它并没有触及packages.config
(用于重定向)。
有没有人知道任何可能的方法来自动化这个过程?
解决方案
如何使用 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)如果这些都不能满足您的要求,您可以在我们的用户语音论坛上建议一个功能来报告您对自动化的渴望。之后,您可以在此处分享链接,任何对此感兴趣的人都会对其进行投票,以便获得微软的更多关注。
推荐阅读
- r - 在ggplot x轴上更改NA类别的位置
- javascript - 数据表在与页脚不同的元素中进行单个列搜索(选择输入)
- javascript - 当父母被取消时,是否可以取消孩子承诺?
- google-cloud-platform - GCP 数据流、Dataproc、Bigtable
- python - 使用 pyspark 2.4 将列拆分为多列
- reactjs - 如何使用 React js 向 aws Api 发出请求
- java - 春季数据条件投影未按预期工作
- terraform - 如何将数组参数传递给 terraform 中的 azure arm Templete 部署?
- python - 相关矩阵不显示所有列python
- android - 卡在 Kindle Fire 电视棒的 Charles 代理证书安装中