在TFS中使用NuGet获取内部和外部依赖关系

Col*_*e W 15 version-control tfs tfsbuild nuget nuget-server

我目前正在寻找NuGet来解决我在TFS中的依赖问题,我想要做的是托管我自己的NuGet服务器,它将负责内部依赖.我也想使用NuGet来处理我的第三方依赖.我正在尝试为我们公司设置自动构建,这是我试图用NuGet克服的一个障碍.

所以我的问题是如何处理这种情况,我必须从不同的服务器检索我的依赖项?

有没有更好的方法来处理内部依赖?别人怎么做这个?

另外,作为一个注释,我打算使用NuGet而不将包提交给TFS.我计划使用本文中的方法大纲:

http://blog.davidebbo.com/2011/08/easy-way-to-set-up-nuget-to-restore.html

Xav*_*ter 11

很高兴您正在研究TFS上的NuGet包的无提交方案.你可以看看在这个主题上的博客文章,在这里解释了这个概念.

编辑(2012/06/13):NuGetPowerTools被NuGet的内置包恢复功能所取代.但是,在nuget.targets中更改PackageSources元素的相同概念仍然适用.

你绝对应该看看David Fowler的NuGetPowerTools.安装此软件包后,您可以启用Enable-PackageRestore(软件包管理器控制台中新安装的命令),这将添加... 启用软件包还原将MSBuild目标添加到项目文件中.这些MSBuild目标将在预构建步骤中触发nuget.exe并获取项目所需的任何包.无需在源代码管理中签入NuGet包,只需要packages.config和这些msbuild任务即可.

要配置多个不同的包源,您需要设置一些设置以供这些MSBuild任务使用.其中之一是PackageSources.您可以通过编辑NuGet.targets文件来设置它,一旦启用了包还原,您将在.nu​​get文件夹中找到该文件.

关于这些包源,您可以设置不同的内部NuGet库,或者只是设置要使用的不同网络共享.这是需求和偏好的问题,因此您可以选择.您需要做的就是告诉您的msbuild目标使用这些packagesources.您定义它们的顺序也将是查找包的顺序.

祝好运!泽维尔

  • 好问题!因为你正在使用TFS,它有一个出路,它有一个内置的符号服务器.如果您的内部dll在自动构建过程中将其符号发布到符号服务器,并且消费项目配置为使用此符号服务器(Visual Studio选项),则使用项目将能够逐步执行代码,就像它们具有pdb是本地的.(非tfs用户,可以使用私有的symbolsource.org存储库并发布nuget符号包).这个设置对我有用. (2认同)