我们在TFS和使用Visual Studio 2013中有几个C#.Net应用程序。我对TFS相对较新,并意识到这可能是一个重复的问题。我确定其他人有同样的问题/想法。所有这些都有共同的共享dll(即System.Web.MVC.dll)以及我们内部构建的公共库(即our_common_lib.dll)。当然,我们希望在TFS中只存储这些常见dll的一个版本,并将所有项目引用/链接到这些常见的dll,这样当我们分支或创建新项目时,它们会自动拉入这些共享的dll。在以前的生活中,我在ClearCase中做过这个(是的,那个旧的)。我们怎样才能在TFS中做到这一点? (如果这是一个骗局,请指出我)
答案 0 :(得分:3)
有几种方法可以分发它。也许你可以在每个客户的GAC中安装/注册二进制文件。
另一种方法可能是(如果您需要更频繁的更新)将二进制文件存储在共享位置的源代码管理中。每个项目都使用共享位置的文件。
您也可以使用Nuget包。将这些常见的dll打包到Nuget包中。如果您正在使用TFS 2015及更高版本,则可以使用将此软件包上传到Feed on TFS软件包站点。然后在每个客户端的Nuget.config文件中添加此Feed设置。然后,您可以从Feed上的TFS安装这些软件包。有关更多详细信息,请参阅:https://www.visualstudio.com/en-us/docs/package/build/team-build-nuget
您可以参考的类似问题:
TFS 2010 Branch Across Team Projects - Best Practices
Shared Libraries branched across team projects - Best Practices
答案 1 :(得分:0)
如果您的our_common_lib.dll是一个项目,那么您可以将此项目添加到您的解决方案中,然后以这种方式引用它。这样,它将使用您的主要解决方案构建并包含在输出中。
如果不是这种情况,我过去这样做的方法是在TFS中有一个包含相关dll的文件夹。然后,您可以使用“添加参考”屏幕中的“浏览”在项目中选择它们作为参考。
system.web dll不需要作为已检入的DLL包含在TFS中,因为它们是.NET dll,应该可以在程序集下的添加引用屏幕或NuGet中使用。
希望这有帮助!