是否可以将TeamCity配置为使用Visual Studio 2015附带的MSBuild?

w.b*_*ian 12 teamcity visual-studio-2015 asp.net-core

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

C:\...\MyApp.kproj(7, 3): error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\AspNet\Microsoft.Web.AspNet.Props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

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

我假设我需要让TeamCity使用Visual Studio 2015附带的msbuild版本.这甚至可能吗?

Eri*_*oen 11

编辑: 从TeamCity 9.x开始,所有工作都开箱即用,但对于早期版本,以下是一个解决方案.

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

但是,您将无法使用TeamCity包含的MSBuild运行器进行构建.但是使用命令行运行器非常简单.我提取了一个像这样的元流氓.它具有与包含的TeamCity MSBuild 2013跑步者几乎相同的功能.如果您需要更多可配置性,只需添加更多参数即可.

我的meta-runner最终看起来像这样:

<?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>
Run Code Online (Sandbox Code Playgroud)

注意:预计2015年第二季度的TeamCity 9.1将在本地构建VS2015项目.

  • 很高兴它对你有效.请注意,在TeamCity 9.x中,一切都只是开箱即用,所以我建议升级,如果这是一个选项. (2认同)

w.b*_*ian 0

根据 JetBrains,它不被直接支持,尽管使用 TeamCity 的命令行运行器应该可以。