Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TFS连续生成自定义放置文件夹模板_Tfs - Fatal编程技术网

TFS连续生成自定义放置文件夹模板

TFS连续生成自定义放置文件夹模板,tfs,Tfs,我试图实现连续构建过程,如果我查看sequence Drop文件夹中的XAML,我想指定一个自定义模板 也就是说,我不希望所有文件都放在一个文件夹中, 我必须在根文件夹中创建一个文件夹结构,如Folder1、Folder2 基于文件扩展名,必须将文件放到特定文件夹中 任何一点如何实现这一点,如果您使用默认的构建过程模板(或的派生模板),复制到DropFolder的操作都在最后块的中,请尝试编译、测试并关联变更集和工作项。您必须将单个复制到放置位置操作替换为自定义序列。FindMatchingFi

我试图实现连续构建过程,如果我查看sequence Drop文件夹中的XAML,我想指定一个自定义模板

也就是说,我不希望所有文件都放在一个文件夹中, 我必须在根文件夹中创建一个文件夹结构,如Folder1、Folder2

基于文件扩展名,必须将文件放到特定文件夹中


任何一点如何实现这一点,

如果您使用默认的构建过程模板(或的派生模板),复制到DropFolder的操作都在
最后
块的
中,请尝试编译、测试并关联变更集和工作项。您必须将单个
复制到放置位置
操作替换为自定义序列。
FindMatchingFiles
可用于根据搜索标准选择一组文件

试图复制单个项目时会出现一个问题;TFS构建活动没有相应的操作;仅适用于
CopyDirectory
。您可以设置
InvokeProcess
,或者添加
Community TFS Build Extensions
,从中可以获得
robocy
Powershell
操作来支持此类任务


如果您使用的是基本的DefaultTemplate,我强烈建议您在其副本中进行更改,并将其用于构建。

如果您愿意修改TFS构建模板,那么Torbjörn的答案肯定是正确的。自定义构建模板将使您能够完全控制输出。然而,这可能有些过分,特别是如果您不熟悉WF和团队构建的内部结构的话。另一种方法是编写一些msbuild,它将作为生成的一部分运行

为此,创建一个名为“DropTidy.proj”的文件并编辑该文件,使其看起来像这样

<Project DefaultTargets="CopySQLReleaseFiles" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">

  <Target Name="CopySQLReleaseFiles">

    <ItemGroup>
      <SqlBuildOutput Include="$(OutDir)\*.sql" />
    </ItemGroup>

    <Copy SourceFiles="@(SqlBuildOutput)" DestinationFolder="$(OutDir)\SQL" />

  </Target>

</Project>

上面的示例将扩展名为“sql”的所有文件复制到名为“sql”的文件夹中$(OutDir)是team build使用的工作文件夹,它与构建代理上的构建工作区中的“二进制文件”文件夹相关

将文件签入TFS,然后将其添加到团队构建定义中的“要构建的项目”列表中。确保它是列表中的最后一个“解决方案”,以便它在构建中的其他解决方案之后运行。还要确保将项目文件签入的文件夹是构建工作区的一部分


运行构建时,您应该会在放置位置看到一个名为SQL的新文件夹。

谢谢,但我的应用程序是DotnetNuke,我有很多文件夹,如App_LocalResources、DesktopModules、DotnetNuke\DesktopModule1、module2,每个文件都应该复制到特定位置,我必须创建包含所有这些文件的drop folder DotNetNuke,在Xaml drop folder事件中,我可以创建一个代码活动吗?我不知道如何创建它,你能给我指一些参考资料吗