Nuget Clean Package删除/安装

时间:2011-06-21 06:16:45

标签: visual-studio-2010 nuget

我想删除整个nuget包,并再次在我的项目中干净地安装它。

可悲的是,由于某种原因,它会跳过删除已经“修改”的文件,然后在重新安装时跳过将它们放入项目中,因为它们已经存在。

是否有任何标志可以设置为无条件删除nuget包的每一个跟踪,或者覆盖所有现有文件?

感谢。

4 个答案:

答案 0 :(得分:11)

不幸的是,目前,NuGet没有做你想做的事。在卸载过程中,NuGet将仅删除尚未修改的内容文件。正如您所注意到的,更新过程不会更新已修改的文件。

Uninstall-Package命令确实有-Force选项,但即使有其他依赖于此的软件包,也要“强制”卸载。

我们当然可以将此作为一个问题提交,并将其纳入未来版本。

另一种选择是创建一个枚举包内容的PowerShell脚本,然后允许您删除所有内容文件。我会看看是否有一种简单的方法可以做到这一点。

BTW:也许您可以找到一种更好的方法来扩展现有的内容文件而不是直接修改它。特别是因为您在更新软件包时丢失了更改。

答案 1 :(得分:6)

你现在可以做你想做的事! (最终)

您需要先更新到最新的NuGet(我认为此功能是在2013年4月左右添加的)。通过转到Tools > Extensions and Updates并点击Updates更新nuget来执行此操作。

然后-FileConflictAction参数将允许您覆盖文件。

Install-Package Microsoft.jQuery.Unobtrusive.Validation -Version 2.0.30506.0 -FileConflictAction Overwrite

PowerShell Command Reference for Install-Package

答案 2 :(得分:3)

NuGet版本1.6具有删除包功能! http://docs.nuget.org/docs/release-notes/nuget-1.6

如果扩展程序的更新失败(signatur missmatch),只需卸载并重新安装即可。这是一个众所周知的问题。

答案 3 :(得分:0)

我认为这发生在我身上几次。转到应该是项目根目录的packages.config文件,并删除叛乱分子(在您的情况下,包含该行的行:SignalR)。这将告诉NuGet从未安装该软件包。

现在你可以通过存储库重新安装它,然后卸载它,所以一切都恢复到你进入这个混乱之前的状态。我不确定它是如何发生的。