tfsbuild - 仅使用 VS2013 在 TFS 构建服务器上构建 VS2013

标签 tfsbuild visual-studio-2013

我正在设置一个新的构建服务器来支持我们的开发团队从 VS2010 迁移到 VS2013。我们还没有迁移 TFS 服务器,因此新的构建服务器已设置为带有 2 个代理的 VS2010 构建 Controller 。我还在机器上安装了VS2013(大锤方法)。

我们的所有代码都已迁移到目标 .Net 4.5.1,并可以在开发人员工作站上正常编译。

除了包含 Web 项目的解决方案外,我们的大多数解决方案都构建得很好。这些项目正在提示:

找不到导入的项目“C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets”。

导入的项目在构建过程中通过这两行使用 VisualStudioVersion 变量:

<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
...
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />

根据此页面:

http://msdn.microsoft.com/en-us/library/vstudio/bb383796.aspx

对于 4.5 和 4.5.1 目标,

将设置为“11.0”。但构建机器只有上述路径的12.0版本:

“C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets”

这些相同的 .csproj 行似乎在一个全新的 VS2013 项目中使用,所以我不确定如何在构建机器上正确解决这个问题。

最佳答案

这是由于Vs2012在csproj文件中添加了这部分:

  <PropertyGroup>
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
  </PropertyGroup>

您可以安全地删除该部分,然后您的解决方案就会构建。

您必须确保 .proj 文件以 <Project ToolsVersion="12" 开头否则下次使用 Visual Studio 2010 打开项目时,它将再次添加删除的节点。

否则,如果您需要使用 webdeploy 或使用构建服务器,上述解决方案将不起作用,但您可以指定 VisualStudioVersion构建脚本中的属性:

msbuild myproject.csproj /p:VisualStudioVersion=12.0

或编辑您的构建定义:

edit build definition to specify the <code>VisualStudioVersion</code> property

关于tfsbuild - 仅使用 VS2013 在 TFS 构建服务器上构建 VS2013,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20002532/

相关文章:

c++ - 为什么VS2013在下面的第一个和第二个例子中分别使用了非虚拟调用和虚拟调用?

c# - Visual Studio 可扩展性 - 自定义语言文本编辑器设置

visual-studio-2013 - Visual Studio MSBuild 错误

visual-studio-2013 - 数据库项目部署在 Visual Studio 2013 中失败

visual-studio - 如何在不加载其所有项目的情况下打开 Visual Studio 解决方案?

tfsbuild - TFS 2013 构建 Controller 不尊重 NuGet 包恢复

sql-server - 自动生成数据库更改脚本

tfs - 在 TeamBuild 服务器上运行 MSTEST.exe/publish,先决条件是什么?

TFSBuild 命令行/vNext 2015

visual-studio-2017 - 无法找到类型 [Microsoft.TeamFoundation.Client.TeamFoundationServerFactory]