繁体   English   中英

重新安装 NuGet 软件包,其中 NuGet 安装为 VS 扩展

[英]Reinstalling NuGet packages with NuGet installed as VS Extension

根据 NuGet 文档,我希望能够在 packages.config 中安装所有 NuGet 包。 NuGet 安装为 VS 扩展,我似乎找不到 nuget.exe。 是否可以运行:

nuget i packages.config -o Packages

没有在每个项目的基础上维护 nuget.exe 的单独副本?

重新安装当前解决方案的所有项目中的所有包:

Update-Package -Reinstall

您可以在此处找到有关重新安装 nuget 软件包的更多信息

警告- 使用

Update-Package -Reinstall

或者

Update-Package -Reinstall -IgnoreDependencies

可能会删除您的所有软件包和 package.config 文件!

始终确保首先执行备份。

场景

  • 多项目解决方案
  • 每个都包含自己的 Nuget 条目,其中一些具有相同的包(例如,SharpRepository、Entity Framework)
  • 现在复制没有包文件夹的文件夹以在其他地方“分发”
  • 假设包文件夹不包含在发行版中
  • 现在尝试命令Update-Package -Reinstall或者如果您有一些 alpha 包和/或确定您的依赖项是好的,请尝试Update-Package -Reinstall -IgnoreDependencies

结果
由于包文件夹不存在,因此您的包的条目也会有条不紊地 go 消失。 这可能会让一些人感到惊讶——所以要小心,这就是我要说的。

作为这篇文章的更新,NuGet 1.6 添加了对工作流的支持,以便在构建时恢复包(如果丢失)。 右键单击解决方案,单击“启用 Package 恢复模式”将其设置为开启。

更多详细信息请参见: http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages

此博客条目上找到了解决方案。 我需要安装NuGet.CommandLine ,这使得 nuget.exe。 在 VS 命令行中全局可用。 然后我可以将其设置为预构建事件,以确保下载依赖项。

一个更简单的选项,您可以在开发过程中在 Visual Studio 中保持启用,以减轻 NuGet package 安装相关的痛苦。

将下面提到的两个选项保留在NuGet Package Manager > General中检查 state -

  1. 允许 NuGet 下载缺失的包
  2. 在 Visual Studio 中构建期间自动检查丢失的包

看看下面的截图:

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM