我有一个包含多个项目的解决方案。大多数第三方引用都缺失了,但是有一些包。每个项目的配置文件。我如何得到NuGet安装/更新所有需要的包?这需要通过命令行为每个项目完成吗?
当前回答
Update-Package -ProjectName 'YourProjectNameGoesHere' -Reinstall
这是我找到的最好最简单的例子。它将重新安装在包中列出的所有块。配置,它将保留当前版本。用项目名称替换YourProjectNameGoesHere。
其他回答
在最新的NuGet 2.5版本中,包管理器中现在有一个“更新全部”按钮:http://docs.nuget.org/docs/release-notes/nuget-2.5#Update_All_button_to_allow_updating_all_packages_at_once
这里有另一个解决方案,如果你正在使用网站项目,或不想启用NuGet包恢复。
您可以使用包管理器控制台来枚举包中的所有包。配置文件并重新安装。
# read the packages.config file into an XML object
[xml]$packages = gc packages.config
# install each package
$packages.packages.package | % { Install-Package -id $($_.id) -Version $($_.version) }
在Visual Studio中还有另一种更新且更快的方法来实现这一点。看看David Ebbo的这篇文章,如果你遇到麻烦,请参考评论部分。基本上,在包管理器提示符中执行以下操作:
PM> Install-Package NuGetPowerTools
PM> Enable-PackageRestore
之后,当您构建解决方案时,如果缺少这些包,将自动安装。
更新:
这个功能是内置在Nuget 1.6的visual studio集成,所以你甚至不需要安装NuGetPowerTools或键入命令。你所要做的就是
在“解决方案资源管理器”中右键单击“解决方案”节点并选择 启用NuGet包恢复。
阅读这篇文章了解更多细节。
不知道从什么时候开始,但在VS2019中你可以用一种更简单的方式来做:
在解决方案资源管理器中右键单击解决方案 为解决方案选择管理Nuget包 有4个选项卡,浏览,安装,更新,合并 合并显示是否有任何项目使用不同版本的包(在大多数情况下,这就是为什么我们要更新所有的包) “更新”显示任何项目中是否有可用的更新。选择全部并单击更新,任务将完成。
我知道这是一个老帖子,但我认为这可能有用。如果您需要在更新过程中忽略特定的包(如任何更新JavaScript引用的包),请使用以下PowerShell脚本(确保您的包源在包管理器控制台中设置为“All”):
编辑2014-09-25 10:55 AM EST -修复了脚本中的一个错误
$packagePath = "packages.config"
$projectName = "MyProjectName"
$packagesToIgnore = @(
"bootstrap",
"jQuery",
"jquery-globalize",
"jquery.mobile",
"jQuery.jqGrid",
"jQuery.UI.Combined",
"jQuery.Validation",
"Microsoft.jQuery.Unobtrusive.Validation",
"Modernizr",
"Moment.js"
)
[xml]$packageFile = gc $packagePath
$packagesToProcess = $packageFile.packages.package | Where-Object {$packagesToIgnore -notcontains $_.id}
$packagesToProcess | % { Update-Package -reinstall -projectname $projectName -id $($_.id) }
推荐文章
- 重新定位解决方案从。net 4.0到4.5 -如何重新定位NuGet包?
- 如何在解决方案中找到未使用的NuGet包?
- 获取“项目”核配置无效错误
- 如何在Visual Studio中启用NuGet包恢复?
- 系统。方法未找到?
- 是否可以更改NuGet包的位置?
- 缺少NuGet包
- 让TFS忽略我的包文件夹
- 如何通过NuGet安装旧版本的包?
- 该项目引用了这台计算机上缺少的NuGet包
- 资产文件project.assets.json未找到。运行NuGet包恢复
- 如何使用命令行清除NuGet包缓存?
- 如何在本地安装NuGet包. nuupkg文件?
- 如何获得NuGet来安装/更新packages.config中的所有包?
- 下载旧版本的包与NuGet