我有一个包含多个项目的解决方案。大多数第三方引用都缺失了,但是有一些包。每个项目的配置文件。我如何得到NuGet安装/更新所有需要的包?这需要通过命令行为每个项目完成吗?
当前回答
经过3个小时的搜寻和调查。
我有问题,因为我们在团队中有两个成员(使用GitHub源代码控制),因为我们没有限制文件的包发送到远程存储库,团队成员之一是发送包到服务器,我已经拉到我的本地更改。
在那之后,我有同样的问题,作为PO,我也不能发布我的API项目到服务器。
我刚刚用过的
更新-包-重新安装-在包管理控制台运行此命令
此命令将重新安装解决方案中使用的所有包。(适用于每个项目)
重新安装当前解决方案all PROJECTS中的所有包:
Update-Package - projectname ' project name ' -重新安装-在Package Manager控制台运行此命令
该命令将重新安装与“-ProjectName”后指定的项目相关的所有包。我认为这是更好的,因为我不得不等待半个小时重新安装所有的包在解决方案。
多亏了罗道夫·布洛克。
另外,我建议当你从远程服务器上拉更改时,按下“恢复包”按钮,Visual studio会显示这个按钮。
其他回答
在最新的NuGet 2.5版本中,包管理器中现在有一个“更新全部”按钮:http://docs.nuget.org/docs/release-notes/nuget-2.5#Update_All_button_to_allow_updating_all_packages_at_once
经过3个小时的搜寻和调查。
我有问题,因为我们在团队中有两个成员(使用GitHub源代码控制),因为我们没有限制文件的包发送到远程存储库,团队成员之一是发送包到服务器,我已经拉到我的本地更改。
在那之后,我有同样的问题,作为PO,我也不能发布我的API项目到服务器。
我刚刚用过的
更新-包-重新安装-在包管理控制台运行此命令
此命令将重新安装解决方案中使用的所有包。(适用于每个项目)
重新安装当前解决方案all PROJECTS中的所有包:
Update-Package - projectname ' project name ' -重新安装-在Package Manager控制台运行此命令
该命令将重新安装与“-ProjectName”后指定的项目相关的所有包。我认为这是更好的,因为我不得不等待半个小时重新安装所有的包在解决方案。
多亏了罗道夫·布洛克。
另外,我建议当你从远程服务器上拉更改时,按下“恢复包”按钮,Visual studio会显示这个按钮。
我尝试了Update-Package -重新安装,但它在一个包上失败,并停止处理解决方案中所有剩余的项目包。
我最终创建了枚举所有包的脚本。对每个项目/包执行Update-Package -重新安装-ProjectName prj -Id pkg。
希望对大家有所帮助:
$files = Get-ChildItem -Recurse -Include packages.config;
[array]$projectPackages = @();
$files | foreach { [xml]$packageFile = gc $_; $projectName = $_.Directory.Name; $packageFile.packages.package.id | foreach { $projectPackages += @( ,@( $projectName, $_ ) ) } }
$projectPackages | foreach { Update-Package -Reinstall -ProjectName $_[0] -Id $_[1] }
编辑: 这是我犯的一个错误: Update-Package:无法找到'EntityFramework.BulkInsert-ef6'包。在执行安装或更新之前,必须还原现有包。 手动运行 更新-包-重新安装-ProjectName my_prj -Id EntityFramework。BulkInsert-ef6 工作得很好。
这里有另一个解决方案,如果你正在使用网站项目,或不想启用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) }
打开包管理器控制台
视图->其他Windows -> Package Manager Console
重新安装当前解决方案all PROJECTS中的所有包:
Update-Package -Reinstall
重新安装当前解决方案的SPECIFIC PROJECT中的所有包(感谢unarity和ashes999):
Update-Package -ProjectName 'YourProjectNameGoesHere' -Reinstall
推荐文章
- 重新定位解决方案从。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