2

VS2013 で作成された ASP.NET MVC Web アプリケーションがあり、CI に TeamCity 8.1 を使用しています。

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

10.0 ではなくバージョン 12.0 を使用しているため、間違ったパスでターゲットにアクセスしようとしています。

私のソリューション ファイルは次の行で始まります。

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

VS2013 で作成した MVC プロジェクトのプロジェクト ファイルには、VisualStudioVersion の this 宣言があります。

  <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