我在Team city中构建项目时遇到以下错误。
同一个项目正在本地计算机上构建。本地机器有VS 2015和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)" />
这是控制台应用程序。
答案 0 :(得分:5)
我前面遇到过类似的问题,因为我使用管理员权限运行本地计算机,但Visual Studio安装程序已将环境变量设置为user
级而不是system
级别管理员使用。因此,在以管理员身份进行编译时,FSharpTargetsPath
未能从VisualStudioVersion
等环境变量中正确构建。
在您的本地计算机上查看在您成功使用的级别(系统或用户)上为VisualStudioVersion
设置的环境变量值,以及其他变量,然后检查这些值是否设置为Team City机器上的相应级别。
也许您在本地计算机上以user
运行,在Team City计算机上以System
运行。
请在此处查看详细信息:https://stackoverflow.com/a/21420306/152739
我希望这是有道理的。