TFS:在多个项目中共享单个 dll

TFS: Sharing a single dll over multiple projects

我们在 TFS 中有几个 C# .Net 应用程序并使用 Visual Studio 2013。我对 TFS 比较陌生,意识到这可能是一个重复的问题。我确定其他人也有相同的 issue/thought。所有这些都有共同的共享 dll(即 System.Web.MVC.dll)以及我们内部构建的共同库(即 our_common_lib.dll)。当然,我们希望在 TFS 中只存储这些通用 dll 的一个版本,并将所有项目 reference/link 存储到这些通用 dll,这样当我们分支或创建新项目时,它们会自动拉入这些共享 dll。在以前的生活中,我在 ClearCase(是的,那么旧)中做到了这一点。我们如何在 TFS 中执行此操作? (如果这是一个骗局,请指出我那里)

如果您的 our_common_lib.dll 是一个项目,那么您可以将此项目添加到您的解决方案中,然后以这种方式引用它。这样它将与您的主要解决方案一起构建并包含在输出中。

如果不是这种情况,我过去这样做的方法是在 TFS 中创建一个文件夹,其中包含有问题的 dll。然后,您可以 select 使用添加参考屏幕中的浏览将它们作为项目中的参考。

system.web dll 不需要包含在 TFS 中的 DLL 中,因为它们是 .NET dll,并且应该在程序集下的添加参考屏幕中或通过 NuGet 可用。

希望对您有所帮助!

有几种分发方式。也许您可以 install/register 每个客户端的 GAC 中的二进制文件。

另一种方法可能是(如果您需要更频繁的更新)将二进制文件存储在共享位置的源代码管理中。每个项目都使用来自共享位置的文件。

您也可以使用 Nuget 包。将那些常用的 dll 打包成一个 Nuget 包。如果您使用的是 TFS 2015 及更高版本,则可以使用将此包上传到 TFS 包站点上的 Feed。然后在每个客户端的 Nuget.config 文件中添加此提要设置。然后您可以从 TFS 上的 Feed 安装这些包。更详细的信息可以参考: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