能否配置TeamCity使用随Visual Studio 2015提供的MSBuild?

13

我正在尝试在TeamCity中构建一个ASP.NET vNext项目。但是在尝试构建时,我收到了以下错误:

C:\ ... \ MyApp.kproj(7,3):错误MSB4019:未找到导入的项目“C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v12.0 \ AspNet \ Microsoft.Web.AspNet.Props”。请确认<Import>声明中的路径是否正确,并且磁盘上存在该文件。

实际上,它正在寻找的文件位于C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ AspNet \ Microsoft.Web.AspNet.Props

我假设我需要让TeamCity使用随Visual Studio 2015一起发布的msbuild版本。 这是可能的吗?


你是否在托管Team City代理的服务器上安装了新版本的MSBuild? - Philip Pittle
3个回答

12

编辑:从TeamCity 9.x开始,所有问题都可以直接解决,但对于早期版本,以下方法是可行的。

通过将env.VSToolsPath环境属性设置为C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0,应该能够解决项目导入问题。

但是,您将无法使用TeamCity中包含的MSBuild运行程序进行构建。但使用命令行运行程序非常简单。我提取了一个类似这样的元运行程序。它几乎具有与TeamCity MSBuild 2013运行程序相同的功能。如果您需要更多的配置选项,只需添加更多参数即可。

我的元运行程序最终看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<meta-runner name="MSBuild 2015">
  <description>MSBuild 2015 command line runner</description>
  <settings>
    <parameters>
      <param name="solutionFile" />
      <param name="target" value="Build" />
    </parameters>
    <build-runners>
      <runner name="MSBuild 2015" type="simpleRunner">
        <parameters>
          <param name="command.executable" value="C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" />
          <param name="command.parameters" value="/v:m /m /t:%target% %solutionFile%" />
          <param name="teamcity.step.mode" value="default" />
        </parameters>
      </runner>
    </build-runners>
    <requirements />
  </settings>
</meta-runner>

注意:预计在2015年第二季度发布的TeamCity 9.1将能够原生地构建VS2015项目。

1
这对于TeamCity 8.x非常有效。我们现在使用元运行程序使得MS Build Tools 2015工作良好。干得好,Erik!谢谢! - StephenPAdams
2
很高兴它对你有用。请注意,在TeamCity 9.x中,一切都可以直接使用,因此如果您有升级选项,我建议您进行升级。 - Erik A. Brandstadmoen

2
一种替代的解决方法是仅仅用14.0工具替换12.0工具。我刚刚下载了最新的Visual Studio 2015(更新2)构建工具,并在我的代理上安装了它。
1. 将C:\Program Files (x86)\MSBuild\12.0重命名为C:\Program Files (x86)\MSBuild\12.0-old 2. 复制C:\Program Files (x86)\MSBuild\14.0到C:\Program Files (x86)\MSBuild\12.0
这样就可以了!你需要在12和14文件夹中都有14.0工具才能正常工作。

0

对于 JetBrains, 虽然它没有直接支持,但使用 TeamCity 的命令行运行程序应该是可行的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接