チームシティでプロジェクトを構築しているときに、次のエラーが発生します。
同じプロジェクトがローカルマシンでビルドされています。ローカルマシンにはVS2015とF#4.0があります。
私のプロジェクト構成は以下の通りです。
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.Microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<Choose>
<When Condition="'$(VisualStudioVersion)' == '11.0'">
<PropertyGroup Condition="Exists('$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\4.0\Framework\v4.0\Microsoft.FSharp.Targets')">
<FSharpTargetsPath>$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\4.0\Framework\v4.0\Microsoft.FSharp.Targets</FSharpTargetsPath>
</PropertyGroup>
</When>
<Otherwise>
<PropertyGroup Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets')">
<FSharpTargetsPath>$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets</FSharpTargetsPath>
</PropertyGroup>
</Otherwise>
</Choose>
<Import Project="$(FSharpTargetsPath)" />
これはコンソールアプリケーションです。
管理者権限でローカルマシンを実行していたため、しばらく前に同様の問題が発生しましたが、Visual Studioインストーラーは、管理者が使用するuser
レベルではなくsystem
レベルで環境変数を設定していました。を使用します。そのため、管理者としてコンパイルするときに、FSharpTargetsPath
がVisualStudioVersion
などの環境変数から正しく構築されていませんでした。
ローカルマシンを調べて、正常に使用しているレベル(システムまたはユーザー)でVisualStudioVersion
に設定されている環境変数の値、およびその他の変数を確認し、これらが対応するに設定されていることを確認します。チームシティマシンのレベル。
おそらく、ローカルマシンではuser
として実行し、TeamCityマシンではSystem
として実行しています。
詳細はこちらをご覧ください: https://stackoverflow.com/a/21420306/152739
これが理にかなっていることを願っています。