错误 MSB4102:元素 <Import> 中 "Project" 属性的值“”无效。参数 "path" 的长度不能为零。 F#
error MSB4102: The value "" of the "Project" attribute in element <Import> is invalid. Parameter "path" cannot have zero length. F#
我在 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#.0\Framework\v4.0\Microsoft.FSharp.Targets')">
<FSharpTargetsPath>$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#.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
设置了哪些环境变量值,以及其他变量,然后检查这些是否正确在Team City机器上设置对应等级。
也许您在本地计算机上 运行 为 user
而在 Team City 计算机上 System
。
在此处查看详细信息:
我希望这是有道理的。
我在 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#.0\Framework\v4.0\Microsoft.FSharp.Targets')">
<FSharpTargetsPath>$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#.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
设置了哪些环境变量值,以及其他变量,然后检查这些是否正确在Team City机器上设置对应等级。
也许您在本地计算机上 运行 为 user
而在 Team City 计算机上 System
。
在此处查看详细信息:
我希望这是有道理的。