【问题标题】:Call custom tool from TFS build从 TFS 构建调用自定义工具
【发布时间】:2013-03-01 16:21:59
【问题描述】:

我们正在使用 TFS2010 构建我们的网站,并且我们正在创建完全自动化的构建。目前,这些站点是在远程服务器中构建和部署的。

这些站点包含几个配置文件,我们希望将它们转换为构建的一部分。由于有一些规则可以创建正确的配置文件,我们希望为此目的使用自定义工具 (.exe),而不是使用 xml 转换。

从我们在构建模板中可以看到,MSBuild 将文件复制到一个放置文件夹,然后将它们推送到远程 IIS 站点。我们希望将我们的自定义工具与此过程挂钩,并在网站发布之前在构建服务器中进行转换。问题是 MSBuild 任务是构建模板中的单个节点,我们找不到调用工具的地方。在 MSBuild 步骤之前,没有代码部署到放置文件夹,在 MSBuild 步骤之后,代码已经部署到远程服务器。

关于如何将自定义工具插入正确的工作流程步骤有什么想法吗?

【问题讨论】:

    标签: deployment msbuild continuous-integration workflow


    【解决方案1】:

    您使用的 msbuild 目标是什么?我认为您可以在 csproj 文件中定义自己的目标来执行以下操作:

    1. 针对所需文件执行您的自定义工具
    2. 运行通常的构建目标(或您通常使用的任何目标)

    编辑 例如。在 .csproj 文件中,您可以定义以下内容:

    <Target Name="buildWithCustomTool">
    
        <!-- Exec your custom tool -->
       <Exec Command="your command" />   
        <!-- Call the build target which will run as normally -->        
       <CallTarget Targets="Build" />
    
    </Target>  
    

    希望对你有帮助,

    伊万

    【讨论】:

    • 只是为了添加到 Isantipov 的回复中。您基本上需要创建一个命令行工具,因为构建机器将没有 gui 交互。这就是 nunit.x.x.x.exe 之类的工作方式。甚至“自定义 msbuild 任务”通常也是某些命令行工具的不错的属性设置包装器。如果您的 .exe 不能用作命令行,您可能必须构建自定义 msbuild 任务并使用自定义 .exe 公开的库(如果有)。
    猜你喜欢
    • 2011-11-27
    • 2011-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-17
    • 2014-04-03
    相关资源
    最近更新 更多