卸载NuGet包与SVN工作副本的区别

6

你好!

我正在使用VS2010 Express上的NuGet 1.2开始工作。我在我的项目中使用SVN(没有集成到VS中,只是TortoiseSVN)。问题是 - 看起来NuGet创建了根目录下的/packages/文件夹。似乎在卸载包时,NuGet将删除该包文件夹。这将破坏SVN工作副本。

有关于如何让SVN和NuGet一起工作的任何指导吗?

提前致谢!

更新: 我的意思不是整个/packages/文件夹被删除,我是说,例如当将T4MVC升级到2.6.45时,文件夹/packages/T4MVC.2.6.44(以及其中的.svn文件夹)将被删除,这将破坏SVN工作副本。

更新2: 经过我的检查 - 如果里面有不属于包的内容(例如我的.svn文件夹),NuGet不会删除文件夹。因此,如果您像我一样喜欢将packages存储在SVN中,则在升级后,您应该从SVN中删除旧版本的包留下的文件夹。


天啊,太糟糕了。也许应该向 NuGet 团队报告此问题。如果在包目录中还有剩余的内容,NuGet 应该将其保留在那里。或者至少要优雅地失败。 - R. Martinho Fernandes
等一下,我想它已经在那里了:问题[#810] (http://nuget.codeplex.com/workitem/810)。 - R. Martinho Fernandes
请检查上面的更新。 - artvolk
1个回答

7

有一种方法可以在不检查“Packages”文件夹的情况下运行NuGet。您只需从SVN中排除整个文件夹,并按照David Ebbo在这篇文章中概述的步骤进行操作。


问题在于我是那些“创建‘Lib’或‘ExternalDependencies’文件夹,将二进制文件转储到其中并提交它们到源代码控制以允许其他人构建”的人之一。我只想提交Packages文件夹,但似乎第一个包更新会破坏我的工作副本:(如果NuGet在其中找到.svn,它会保留旧的包版本目录吗? - artvolk
1
如果文件夹中有其他文件,我们不会删除该文件夹,因此在其中放置.svn文件夹将导致我们无法删除该文件夹。更少痛苦的方法是不要检入packages文件夹,并让人们在构建之前运行安装包命令。该帖子甚至有一种方法将其添加到MSbuild中,因此它就像魔术一样。 - Matthew M. Osborn
我更喜欢将所有的依赖项保存在SVN中,以防我离线,但仍然可以访问SVN服务器。无论如何,我已经检查过了 - NuGet不会删除包含.svn文件夹的旧软件包。 - artvolk
更新信息:http://blog.davidebbo.com/2011/08/easy-way-to-set-up-nuget-to-restore.html - Leniel Maccaferri

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接