解决方案中所有项目的nuget更新脚本

解决方案中所有项目的nuget更新脚本,nuget,Nuget,我需要升级VS2013解决方案中的几个项目。解决方案中有许多相互依赖的库和许多项目。我不想全部手动升级。我不想全部升级,所以我不能使用“管理nuget软件包”中的“全部更新”按钮。我有什么选择?理想情况下,我希望能够设置一个要更新的库列表。并运行一个脚本,根据此列表检查每个项目并进行更新。是否有用于此的nuget api?我会编写一个PowerShell脚本,然后从Package Manager控制台运行它。您可以使用以下命令更新特定项目中的所有包: 您也可以只更新项目中的特定包: Update

我需要升级VS2013解决方案中的几个项目。解决方案中有许多相互依赖的库和许多项目。我不想全部手动升级。我不想全部升级,所以我不能使用“管理nuget软件包”中的“全部更新”按钮。我有什么选择?理想情况下,我希望能够设置一个要更新的库列表。并运行一个脚本,根据此列表检查每个项目并进行更新。是否有用于此的nuget api?

我会编写一个PowerShell脚本,然后从Package Manager控制台运行它。您可以使用以下命令更新特定项目中的所有包:

您也可以只更新项目中的特定包:

Update-Package MyPackage -Project MyProject
或者,您可以更新整个解决方案的特定软件包:

Update-Package MyPackage

我还将对所有内容进行源代码管理,以便在脚本更新错误的内容时可以回滚。

如何更新整个解决方案的包,例如2个项目除外?任何用于获取所有项目的api或脚本命令,除了带有测试前缀和更新包的项目之外?NuGet有一个
get Project-all
命令,该命令将为您提供解决方案中的所有项目。然后,您可以根据名称将其过滤掉。因此,类似下面的内容将根据名称
get project-all | where{$\ name.StartsWith(“Test”)-eq$false}
在安装以前版本的软件包的情况下,是否有方法执行软件包安装?我的意思是我有abc.v1软件包。现在我想安装abc.v2。我需要先卸载abc.v1,因为它不支持升级到v2。有办法吗?当然。为此,您可以使用
卸载软件包
安装软件包
命令。您可以使用PowerShell执行此操作。一种方法是使用where子句
$packages=get package-projectname-MyProject |其中{$$\uID-eq'jquery'}
然后计算返回的项目数
if($packages.count-gt 0){'Do something'}
Update-Package MyPackage