C# 要将生成输出复制到源代码管理下的另一个目录吗

C# 要将生成输出复制到源代码管理下的另一个目录吗,c#,dll,tfs,tfsbuild,C#,Dll,Tfs,Tfsbuild,我目前正在设置TFS 2013构建服务器 我有几个不同的应用程序,共享一些通用代码。在其中一个共享库上进行签入时,我希望TFS自动生成,并将其放置在另一个受源代码管理的目录中 生成服务器当前生成DLL,但我无法将它们移动到受源代码控制的文件夹中 例: 源代码管理 斯普林特X - App 1 - App 2 - Common Libraries * Utilities - DLLs 当有人检查实用程序中的更改时,它应该编译DLL并将其移动到“DLL”。当一个

我目前正在设置TFS 2013构建服务器

我有几个不同的应用程序,共享一些通用代码。在其中一个共享库上进行签入时,我希望TFS自动生成,并将其放置在另一个受源代码管理的目录中

生成服务器当前生成DLL,但我无法将它们移动到受源代码控制的文件夹中

例:

源代码管理

  • 斯普林特X

      - App 1
      - App 2
      - Common Libraries
            * Utilities
      - DLLs
    
当有人检查实用程序中的更改时,它应该编译DLL并将其移动到“DLL”。当一个人得到最新信息时,他们就在DLL文件夹中


任何帮助都将不胜感激

在这种情况下,通常最好使用NuGet。但是,要回答您的问题,您需要执行以下操作

在每个客户端生成的工作区中添加共享DLL的文件夹路径,并将客户端生成设置为触发以进行持续集成。这样,当任何人签入共享DLL文件夹中的文件时,将为每个客户端触发生成

第二,每次构建DLL时,都要在shraed DLL文件夹中签入更新的DLL。您需要修改生成工作流,以便

1) 签出DLL文件 2) 将DLL从输出路径复制到共享DLL文件夹 3) 签入DLL文件

您可以使用TFS Build Extensions()库来实现上述所有功能。步骤(1)和(3)可以使用TFSSource活动执行步骤(2)可以使用File活动执行


希望能有所帮助

谢谢,我正在调查此事。现在构建服务说它找不到TF.exe,即使它在服务器上,我甚至在工具路径中指定了它。我可能也会研究Nuget的可能性。如果您对此有任何好的建议,我们将不胜感激。如果您要传递ToolsPath,它需要是TF.exe的完整目录路径。如果未指定ToolsPath,则默认情况下,“活动”使用环境变量VS120COMNTOOLS,并尝试在%VS120COMNTOOLS%\..\IDE\TF.exe处查找TF.exe。设置NuGet服务器非常简单,最简单的方法是简单的文件夹共享。在VisualStudio中设置位置后,该文件夹中的所有软件包都将显示在NuGet软件包管理器中。在这种情况下,客户端应用程序的NuGet将确保在编译客户端时使用最新版本。您所需要做的就是在NuGet包中创建程序集。同样,TfSBuildExtension中有一个活动允许创建NuGet包。