2

我在 VS2013 中创建了一个 ASP.NET MVC Web 应用程序,并将 TeamCity 8.1 用于 CI。

我正在尝试在 TeamCity 中使用 Nuget Pack 构建步骤构建 Visual Studio 解决方案之前恢复我的 Nuget 包并收到此错误:

The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets"
was not found. Confirm that the path in the <Import> declaration is correct

它试图访问错误路径中的目标,因为我使用的是 12.0 版而不是 10.0 版。

我的解决方案文件以以下行开头:

  Microsoft Visual Studio Solution File, Format Version 12.00
  # Visual Studio 2013
  VisualStudioVersion = 12.0.30501.0

我在VS2013中创建的MVC项目的项目文件有一个VisualStudioVersion的声明

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

我想 VisualStudioVersion 的声明是恢复 Nuget 包的构建步骤访问错误文件夹的原因。但我不确定属性 VisualStudioVersion 中的条件被评估为什么。

我尝试为 VisualStudioVersion 创建一个环境变量并将其设置为 12.0,但这不起作用。

奇怪的是,如果我禁用 TeamCity 中的 Nuget Pack 步骤,构建步骤似乎找到了正确的路径

Starting: C:\TeamCity\buildAgent\plugins\dotnetPlugin\bin\JetBrains.BuildServer.MsBuildBootstrap.exe /workdir:C:\TeamCity\buildAgent\work\17b24c83f45b721d "/msbuildPath:C:\Program Files (x86)\MSBuild\12.0\bin\MSBuild.exe"
4

0 回答 0