针对具有不同构建参数的多个项目运行构建

时间:2013-08-20 09:44:14

标签: tfs msbuild tfsbuild msbuild-4.0

我有一系列需要编译和发布的项目,使用单独的MSBuild参数部署到不同的目录。就目前而言,我为每个人都有单独的构建。例如,项目1:

MSBuild Arguments: /target:myTarget /property:PublishDir=\\1.1.1.1\PublishDir1

和项目2:

MSBuild Arguments: /target:myTarget /property:PublishDir=\\1.1.1.2\PublishDir2

但是我想将它们合并为一个版本。我遇到的问题是虽然TFS允许我在构建中指定多个项目,但MSBuild参数适用于所有项目。有没有一种快速的方法可以为每个项目强制一组不同的构建参数,或者我是否需要创建一个新的构建模板来执行此操作?

2 个答案:

答案 0 :(得分:1)

我担心,您需要新的构建模板来将其他参数传递给模板。

但是,如果您尝试将构建输出发布到基于不同Project的不同目录,则可以通过为每个项目设置相同的发布配置文件来实现它。为具有相同名称的每个Project添加发布配置文件。您可以使用文件系统发布方法将输出发布到每个项目的不同目录。只需调用MsBuild参数中的Publish配置文件即可。

/p:DeployOnBuild=true;PublishProfile=Dev

答案 1 :(得分:1)

我建议您创建一个MSBuild .proj文件来执行构建,即:

<Project ToolsVersion="4.0" DefaultTargets="Rebuild" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="Rebuild" >
<!--Execute proj1-->
<MSBuild Projects="Proj1.csproj" Properties="Configuration=Debug;PublishDir=\\1.1.1.2\PublishDir1;></MSBuild> 
<!--Execute proj2-->
<MSBuild Projects="Proj2.csproj" Properties="Configuration=Debug;PublishDir=\\1.1.1.2\PublishDir2;></MSBuild> 
</Target>
</Project>

只需将您的tfs指向此自定义.proj文件即可。