NuGet和TFS最佳实践

49

我们在 TFS 中的项目组织方式如下:

$\DefaultCollection\ProjectName\Source  <-- source code goes here

$\DefaultCollection\ProjectName\SharedAssemblies <-- 3rd party binaries go here

既然NuGet已经出现了,是否有理由改变我们的方法,使用来自NuGet感知项目的dll的NuGet包文件夹呢? 我偏向不这样做,因为

1)这会创建两个地方需要查找依赖项。 2)这会让我们容易受到一个开发人员更新包并破坏某些依赖关系的影响。

话虽如此,如果有人能够提供在TFS环境中开始使用NuGet的好理由,我将很乐意将您的想法作为我的向我的团队展示(开玩笑)。


4
不需要将NuGet包存储在版本控制中,可以使用 NuGet.exe 从项目的 packages.config 文件中填充本地副本:http://blog.davidebbo.com/2011/03/using-nuget-without-committing-packages.html - Richard
对于有多个项目的解决方案,这是如何工作的呢?我们的主要解决方案有两个Web应用程序、两个控制台应用程序和一个服务。使用dll存储方法的优点在于它们都可以一起工作或一起失败。 - Code Silverback
请参见以下链接:对于每个具有相同存储库文件夹的“packages.config”,运行“nuget-exe”,仅下载缺失的程序包(这也可以作为每个项目的预构建步骤)。 - Richard
这个问题在 CodePlex 上有一个开放的问题,那里有很多讨论。http://nuget.codeplex.com/workitem/215 - Matthew M. Osborn
1个回答

31

3
你如何告诉nuget package restore指向TFS中的文件夹而不是物理路径?每个人的工作区可能都不同,所以这种方法可能并不适用于所有人: <add key=" repositoryPath" value=" C:\myteam\teampackages" /> - felickz
5
我知道这是老问题了,但如果还有其他人有疑问:只需不输入文件路径,而是输入相对路径即可。例如:<add key="repositoryPath" value="SharedAssemblies">。 - SeanLAllen

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