如何处理TFS中的公共库和分享dlls

时间:2012-10-21 18:39:24

标签: c# visual-studio tfs tfs2010 nuget

我在tfs源代码管理中设置了2个不同的应用程序。两者共享一个公共库,也在源代码控制中设置。

更改公共库的当前过程是构建它,将dll复制到其他应用程序引入和使用的位置。这是手动的,不能很好地工作,特别是现在我正在转向TFS CI构建。

TFS中的布局:

-TFS
   - Web 1
      | Main
      | RB_1_0
   - Web 2
      | Main
      | RB_1_0
   - Shared
      | Main
      | RB_1_0
      | RB_2_0
      | RB_3_0

所以我希望改变它,自动化它。但不知道我怎么能这样做。你可以看到有多个分支等。作为一个常见的库,我正在考虑设置像我使用nuget包,其中更改被推送到我的web 1和/或web 2.我不确定它是多么容易设置它。

是否有可能审查上述结构,并就管理输出dll的分布的最佳方式提出意见?在CI环境中? Nuget是最好的选择吗?

1 个答案:

答案 0 :(得分:9)

NuGet就是我用来做的。

修改构建过程以创建公共包的新包

将活动添加到build a nuget package,将另一个活动复制到您用作NuGet存储库的网络共享。有一些像Tfs NuGetter这样的项目可以使用,而不是手动编辑构建模板。

如果您不想修改构建模板,那么您可以使用[tfs deployer]之类的工具,编写一个自定义部署脚本来代替创建NuGet包。或者写一些挂钩到构建完成事件的东西。

在所有解决方案的构建中启用还原包

这意味着您无需将软件包存储在源代码管理中,也无需在最新解决方案时处理未下载的软件包。

当您想要更新依赖项的版本时,请打开解决方案并像任何正常的NuGet包一样更新它。