2013-03-01 49 views
0

我们正在使用TFS2010来编写我们的网站,我们正在创建完全自动化的构建过程。目前这些站点是在远程服务器上构建和部署的。从TFS调用自定义工具build

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

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

关于如何在正确的工作流程步骤中插入自定义工具的任何想法?

回答

0

什么是您使用的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> 

希望它能帮助,

伊万

+0

只需添加到Isantipov的响应。你基本上需要创建一个命令行工具,因为构建机器将没有gui交互。这就是nunit.x.x.x.exe这样的工作。即使“自定义msbuild任务”通常是一些命令行工具的不错的属性设置包装。如果您的.exe不能用作命令行,您可能必须构建一个自定义的msbuild任务并使用您的自定义.exe所公开的库(如果有的话)。 – granadaCoder 2013-03-05 14:46:47