C# 如何处理TFS中的公共库&;共享DLL

C# 如何处理TFS中的公共库&;共享DLL,c#,visual-studio,tfs,nuget,C#,Visual Studio,Tfs,Nuget,我在tfs源代码管理中设置了两个不同的应用程序。两者共享一个公共库,也在源代码管理中设置 对公共库进行更改的当前过程是构建公共库,将其跨dll复制到一个位置,以便其他应用程序拉入并使用。这是手动的,不能很好地工作,尤其是现在我要转到TFS CI构建 TFS中的布局如下所示: -TFS - Web 1 | Main | RB_1_0 - Web 2 | Main | RB_1_0 - Shared | Main

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

对公共库进行更改的当前过程是构建公共库,将其跨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是最好的选择吗?

我使用Nuget来实现这一点

修改生成过程以为通用包创建新包

将一个活动添加到,并将另一个活动复制到用作NuGet存储库的网络共享。有一些像这样的项目可以用来代替手工编辑构建模板

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

为所有解决方案启用构建时的恢复包

这意味着您不需要将包存储在源代码管理中,也不需要在获取最新解决方案时处理未下载的包

当您想要更新依赖项的版本时,请打开解决方案,并像任何普通NuGet包一样进行更新