如何一次更新多个解决方案中的nuget包

如何一次更新多个解决方案中的nuget包,nuget,Nuget,我有一个包含很多解决方案的存储库。 有时我需要将一个软件包更新到一个新版本。 这是一种通过VisualStudio缓慢打开每个解决方案和更新的方法 对于同一git存储库中的多个解决方案,一次将单个软件包更新为新版本的最佳方法是什么?您不能使用NuGet,因为正如您所看到的,它依赖于Visual Studio 但是,您有一个NuGet的替代方案,名为,它可以从命令行工作 使用Paket,您可以全局(或每个目录)管理整个存储库的包,也可以创建一个批来更新每个解决方案的包 全局或按目录管理软件包意味着

我有一个包含很多解决方案的存储库。 有时我需要将一个软件包更新到一个新版本。 这是一种通过VisualStudio缓慢打开每个解决方案和更新的方法


对于同一git存储库中的多个解决方案,一次将单个软件包更新为新版本的最佳方法是什么?

您不能使用NuGet,因为正如您所看到的,它依赖于Visual Studio

但是,您有一个NuGet的替代方案,名为,它可以从命令行工作

使用Paket,您可以全局(或每个目录)管理整个存储库的包,也可以创建一个批来更新每个解决方案的包


全局或按目录管理软件包意味着您必须在所有解决方案中,或在paket管理的目录下的所有解决方案中拥有相同版本的软件包。

我所做的只是在sublime的帮助下查找并替换需要更新的版本号。这个解决方案有风险,但我找到的唯一一个

  • 我更新了解决方案文件和版本中的引用 package.config文件中的数字
例如:EntityFramework版本4.3.0到版本6.0.0
  • 更新解决方案文件
    使用regex查找:
    NuGet具有不同的前端,一个是命令行应用程序(),它还允许更新包引用。Thomas Ardal提供了一种可用于跨多个解决方案更新包的方法:

    param(
        [Parameter(Mandatory=$true)]
        [string]$packageId
    )
    
    Get-ChildItem *.sln -recurse | %{.\\nuget.exe restore $_.fullname}
    
    Get-ChildItem packages.config -Recurse `
      | Where-Object {$_ | Select-String -Pattern $packageId} `
      | %{.\\nuget.exe update -Id $packageId $_.FullName}
    
    请注意,此方法不支持控制依赖项行为,并将依赖项更新为其最高可用版本