NuGet将Packages文件夹添加到解决方案中。它应该是Source控件的一部分吗?

时间:2014-05-05 18:20:03

标签: tfs nuget

我正在使用NuGet将包添加到我的解决方案中。 NuGet在我的visual studio的解决方案根文件夹中添加了一个Packages文件夹。相关部分是“packages”文件夹不是源代码控制的一部分。这意味着源代码来自TFS,但项目引用来自由外部源提供的文件夹。人们可以将恶意代码放在packages文件夹中并构建应用程序。

我想了解从TFS源代码控制获取源代码的其他同事如何构建项目,其中packages文件夹不是源代码控制的一部分?

2 个答案:

答案 0 :(得分:1)

我们确实遇到过类似的问题,我们的构建服务器不允许连接互联网,因此无法下载软件包。我们开始创建自己的NuGet Source,它只是一个包含所有包复制到它的共享文件夹。 Visual Studio项目当然会使用这些包而不是www.nuget.org上托管的包

我必须说我们取消了这个想法,因为随着我们的包裹使用量的增加,这样做的开销很大。

我的建议是,如果您担心在构建时下载的软件包,请将软件包文件夹存储在源代码管理中。

答案 1 :(得分:0)

NuGet支持automatic package restoration,因此使用此功能的同事将自动下载所需的软件包。 nuget.org上有一项政策,阻止用户在发布包后删除或更新包的确切版本,以便它可以支持包恢复而不会中断 - see this answer for more detail。如果您使用的是其他软件包源而不是nuget.org,则应检查其软件包删除/更新策略,因为它可能不同。