我正在尝试将我们的TFS服务器升级到2013年。我们目前正在使用2012年,但我们也一直坚持为亲爱的生活升级模板。对于2013年,我们希望进入默认模板,并尽可能少地修改它。
当您考虑到默认模板要求您添加要构建的每个单独的.csproj或.sln文件时,问题就出现了。tfsbuild.proj文件的好处是,您不仅可以在服务器上构建,还可以通过将tfsbuild.proj文件传递给msbuild.exe在本地查看整个分支并在命令行构建所有内容。此外,开发人员可以拥有tfsbuild.proj文件,而不必通过写访问来更改构建定义。
2013年TFS中的TFSBuild.proj文件的替代品是什么?
我的要求是:干净的构建配置。可以轻松地在本地构建所有的东西。
2013年TFS如何解决这一问题?
发布于 2015-02-09 16:53:51
创建您的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>
https://stackoverflow.com/questions/28414676
复制相似问题