错误MSB4102:元素<Import>中"Project"属性的值""无效.参数"path"的长度不能为零.F#

Kun*_*hah 9 teamcity f# canopy-web-testing

我在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)" />
Run Code Online (Sandbox Code Playgroud)

这是控制台应用程序.

Sco*_*ott 5

我有一个类似的问题,因为我在运行具有管理员权限的本地计算机,但Visual Studio安装程序已在user级别设置环境变量,而不是system管理员使用的级别.因此,当以管理员身份进行编译时,FSharpTargetsPath未正确构建环境变量,例如VisualStudioVersion.

查看本地计算机,查看VisualStudioVersion在您成功使用的级别(系统或用户)以及其他变量设置的环境变量值,然后检查这些值是否在Team City计算机上的相应级别设置.

也许您user在本地计算机和SystemTeam City计算机上运行.

请在此处查看详细信息:https://stackoverflow.com/a/21420306/152739

我希望这是有道理的.

  • 嗨斯科特,谢谢你快速回复!问题出在团队城市用作构建的参考的代理上.该代理机器没有安装某些依赖项.比如,F#4.0 (4认同)