Team Foundation Build(2008)减去.sln文件?

时间:2009-11-25 19:15:06

标签: .net tfs team-build

在tfs build 2008中设置新的团队构建,您必须为构建定义选择.sln文件。

我已经阅读了Microsoft.TeamFoundation.Build.Targets,根据我的理解,所有团队构建都是将傻的.sln格式转换为tfsbuild.proj中的msbuild,然后构建它。所以你最终得到的是tfsbuild.proj调用mysolution.sln然后调用myproject.csproj。

我更喜欢的是让tfsproj导入myproject.csproj,覆盖几个目标,并跳过整个.sln => msbuild黑框。

有人这样做过吗?什么是正确的目标覆盖干净地截断.sln混乱?我认为需要重写CoreCompileConfiguration。

通过削减.sln功能,我会失去什么?

2 个答案:

答案 0 :(得分:2)

TFS 2008可以构建解决方案项目。您只需指定要在SolutionsToBuild属性中构建的项目(例如.csproj)文件,并确保构建的配置和平台与您的项目匹配。

这里有关于来龙去脉的讨论: How to build a .csproj using TFS 2008 and MSBuild

答案 1 :(得分:0)

这是我们在项目中使用的东西。它并不完美,但可以解决问题。

<Target Name="CoreCompile"
    DependsOnTargets="$(_CoreCompileDependsOn)"
    Outputs="@(CompilationOutputs)">

  <MakeDir Directories="$(BinariesRoot)" Condition="!Exists('$(BinariesRoot)')" />

  <MSBuild Projects="$(SolutionRoot)\$(SrcBranch)\WholeProject.proj"
             StopOnFirstFailure="$(StopOnFirstFailure)">
    <Output TaskParameter="TargetOutputs" ItemName="CompilationOutputs" />
  </MSBuild>
</Target>

WholeProject.proj是开发人员计算机构建和构建计算机上使用的文件。

我现在不确定为什么必须覆盖CoreCompile,这很可能是因为原始的一个总是查找某个属性并且期望它存在且包含有效的.sln文件