TFS连续生成自定义放置文件夹模板
我试图实现连续构建过程,如果我查看sequence Drop文件夹中的XAML,我想指定一个自定义模板 也就是说,我不希望所有文件都放在一个文件夹中, 我必须在根文件夹中创建一个文件夹结构,如Folder1、Folder2 基于文件扩展名,必须将文件放到特定文件夹中TFS连续生成自定义放置文件夹模板,tfs,Tfs,我试图实现连续构建过程,如果我查看sequence Drop文件夹中的XAML,我想指定一个自定义模板 也就是说,我不希望所有文件都放在一个文件夹中, 我必须在根文件夹中创建一个文件夹结构,如Folder1、Folder2 基于文件扩展名,必须将文件放到特定文件夹中 任何一点如何实现这一点,如果您使用默认的构建过程模板(或的派生模板),复制到DropFolder的操作都在最后块的中,请尝试编译、测试并关联变更集和工作项。您必须将单个复制到放置位置操作替换为自定义序列。FindMatchingFi
任何一点如何实现这一点,如果您使用默认的构建过程模板(或的派生模板),复制到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事件中,我可以创建一个代码活动吗?我不知道如何创建它,你能给我指一些参考资料吗