首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用TFS 2013年替换TFSBuild.proj文件

用TFS 2013年替换TFSBuild.proj文件
EN

Stack Overflow用户
提问于 2015-02-09 16:37:36
回答 1查看 1.1K关注 0票数 4

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

当您考虑到默认模板要求您添加要构建的每个单独的.csproj或.sln文件时,问题就出现了。tfsbuild.proj文件的好处是,您不仅可以在服务器上构建,还可以通过将tfsbuild.proj文件传递给msbuild.exe在本地查看整个分支并在命令行构建所有内容。此外,开发人员可以拥有tfsbuild.proj文件,而不必通过写访问来更改构建定义。

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

我的要求是:干净的构建配置。可以轻松地在本地构建所有的东西。

2013年TFS如何解决这一问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-09 16:53:51

创建您的TFS构建定义使用的包装器MSBuild .proj。我们在NuGet包恢复中使用了这种技术,但是它同样可以用来链接多个解决方案文件。

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

.proj文件(没有建议您使用这个确切的.proj文件,只是一个例子)

代码语言:javascript
复制
<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>

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28414676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档