c# – 用TFS 2013替换TFSBuild.proj文件

我正在尝试将我们的TFS服务器升级到2013年.我们目前正在使用2012年,但我们也一直坚持使用升级模板来度过亲爱的生活.在2013年,我们想要转到默认模板并尽可能少地修改它.

当您考虑默认模板要求您添加要构建的每个.csproj或.sln文件时,会出现此问题.关于tfsbuild.proj文件的好处是你不仅可以在服务器上构建,而且可以在命令行上检查整个分支并在本地构建所有内容,只需将tfsbuild.proj文件传递给msbuild.exe即可. .此外,开发人员可以拥有tfsbuild.proj文件,而无需具有写入权限即可更改构建定义.

TFS 2013中TFSBuild.proj文件的替代品是什么?

我的要求是:
清理构建配置.
可以在本地轻松构建一切.

TFS 2013中此问题的解决方案是什么?

最佳答案 创建一个TFS构建定义使用的包装器MSBuild .proj.我们将此技术用于NuGet包还原,但它同样可以用于将多个解决方案文件链接在一起.

对于本地构建,您可以使用带有.proj包装器的msbuild作为目标(我只是直接构建.sln文件,因为只有1).

.proj文件(不建议你应该使用这个确切的.proj文件,只是一个例子)

  
  

<PropertyGroup>
  <OutDir Condition=" '$(OutDir)'=='' ">$(MSBuildThisFileDirectory)bin\</OutDir>
  <Configuration Condition=" '$(Configuration)'=='' ">Release</Configuration>
  <SourceHome Condition=" '$(SourceHome)'=='' ">$(MSBuildThisFileDirectory)</SourceHome>
  <ToolsHome Condition=" '$(ToolsHome)'=='' ">$(MSBuildThisFileDirectory)tools\</ToolsHome>
</PropertyGroup>

<ItemGroup>
  <Solution Include="$(SourceHome)*.sln">
    <AdditionalProperties>OutDir=$(OutDir);Configuration=$(Configuration)</AdditionalProperties>
  </Solution>
</ItemGroup>

<Target Name="RestorePackages">
  <Exec Command="&quot;$(ToolsHome)NuGet\NuGet.exe&quot; restore &quot;%(Solution.Identity)&quot;" />
</Target>

<Target Name="Clean">
  <MSBuild Targets="Clean"
           Projects="@(Solution)" />
</Target>

<Target Name="Build" DependsOnTargets="RestorePackages">
  <MSBuild Targets="Build"
           Projects="@(Solution)" />
</Target>

<Target Name="Rebuild" DependsOnTargets="RestorePackages">
  <MSBuild Targets="Rebuild"
           Projects="@(Solution)" />
</Target>
点赞