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_Msbuild_Workflow - Fatal编程技术网

如何从TFS中的文本文件生成文档输出

如何从TFS中的文本文件生成文档输出,tfs,msbuild,workflow,Tfs,Msbuild,Workflow,我们在TFS中以多重标记格式存储各种设计文档。我们还有一个EXE进程,可以运行它来获取这些MMD文件并从中生成PDF,但只需从本地文件夹获取文件即可。 我们希望在“签入时”运行一个进程,就像在签入时运行自动构建一样(即,最终调用msbuild来编译应用程序),但在我们的例子中,我们希望它能够获得签入文件的列表,并处理和生成它们的输出。结果不需要在TFS中,因为它们是生成输出,而不是源。 我确信,通过采取与“正常”构建的工作流所必须采取的相同方法,这在某种程度上应该是可能的。 有人做过类似的事情吗

我们在TFS中以多重标记格式存储各种设计文档。我们还有一个EXE进程,可以运行它来获取这些MMD文件并从中生成PDF,但只需从本地文件夹获取文件即可。 我们希望在“签入时”运行一个进程,就像在签入时运行自动构建一样(即,最终调用msbuild来编译应用程序),但在我们的例子中,我们希望它能够获得签入文件的列表,并处理和生成它们的输出。结果不需要在TFS中,因为它们是生成输出,而不是源。 我确信,通过采取与“正常”构建的工作流所必须采取的相同方法,这在某种程度上应该是可能的。
有人做过类似的事情吗,或者可以为我指出一个合适的方向吗?

您可以使用MSBuild中的
exec
任务来调用exe并“生成”您的输出。创建一个名为
buildDocs.proj
的文件,并将其签入TFS(可能位于要构建的内容下的文件夹中)。以下面的MSbuild为指导

<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Target Name="Build">
        <Exec Command='"My.exe" -My Paramiters' />

        <ItemGroup>
            <CopyItems Include="[path to output]\*.*" />
        </ItemGroup>

        <Copy SourceFiles="@(CopyItems)" DestinationFolder="$(OutDir)\SomeDir" />
     </Target>
</Project>

诀窍在于识别所涉及的各种路径

使用默认模板构建项目,就像构建c#项目一样。如果需要向MSBuild传入其他参数,可以在“生成定义过程”选项卡的“高级”部分中执行此操作