Deployment 从TFS生成调用自定义工具

Deployment 从TFS生成调用自定义工具,deployment,msbuild,continuous-integration,workflow,Deployment,Msbuild,Continuous Integration,Workflow,我们正在使用TFS2010进行网站的构建,我们正在创建完全自动化的构建。目前,这些站点是在远程服务器中构建和部署的 这些站点包含几个配置文件,我们希望这些文件作为构建的一部分进行转换。由于有一些规则可以创建正确的配置文件,因此我们希望为此使用自定义工具(.exe),而不是使用xml转换 从生成模板中可以看到,MSBuild将文件复制到放置文件夹,然后将其推送到远程IIS站点。我们希望将我们的自定义工具挂接到这个过程,并在发布站点之前在构建服务器中进行转换。问题是MSBuild任务是生成模板中的单

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

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

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


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

您使用的msbuild目标是什么?我认为您可以在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>  
  • 对所需文件执行自定义工具
  • 运行通常的构建目标(或您通常使用的任何目标)
  • 编辑 例如,在.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>  
    
    
    
    希望有帮助


    伊万

    只是为了补充伊桑蒂波夫的回答。您基本上需要创建一个命令行工具,因为构建机器将没有gui交互。nunit.x.x.x.exe就是这样工作的。甚至“自定义msbuild任务”对于某些命令行工具来说也是很好的属性设置包装。如果.exe不能用作命令行,则可能必须生成自定义msbuild任务并使用自定义.exe公开的库(如果有)。