我正在尝试将我们的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=""$(ToolsHome)NuGet\NuGet.exe" restore "%(Solution.Identity)"" />
</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>