C# 用TFS 2013替换TFSBuild.proj文件

C# 用TFS 2013替换TFSBuild.proj文件,c#,C#,我正在尝试将我们的TFS服务器升级到2013年。我们目前正在使用2012,但我们也一直坚持使用dear life的升级模板。对于2013,我们希望转到默认模板,并尽可能少地修改它 当你认为默认模板要求你添加你想建立的每个单独的.cPROJ或.SLN文件时,问题就出现了。tfsbuild.proj文件的好处在于,您不仅可以在服务器上构建,还可以在命令行上签出整个分支并在本地构建所有内容,只需将tfsbuild.proj文件传递给msbuild.exe即可。此外,开发人员可以拥有tfsbuild.p

我正在尝试将我们的TFS服务器升级到2013年。我们目前正在使用2012,但我们也一直坚持使用dear life的升级模板。对于2013,我们希望转到默认模板,并尽可能少地修改它

当你认为默认模板要求你添加你想建立的每个单独的.cPROJ或.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文件,只是一个示例)


$(MSBuildThisFileDirectory)bin\
释放
$(MSBuildThisFileDirectory)
$(MSBuildThisFileDirectory)工具\
OutDir=$(OutDir);配置=$(配置)

谢谢。我不确定这是唯一的方法,还是MS所说的“正确”方法,或者是什么。不幸的是,虽然MS改进了TFS文档,但似乎TSFSubj.PRJ文档在MSDN上没有达到标准。
<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>