我有这个简单的c#程序(用于演示问题):
Project p = new Project("MyProject.fsproj");
Console.WriteLine("Project loaded {0}", p.FullPath);
在我的主计算机上,这非常有效。但是,当试图在另一台机器上打开相同的.fsproj文件时,它失败了:
未处理的例外情况: Microsoft.Build.Exceptions.InvalidProjectFileException:值"" "项目"元素中的属性无效。参数 "路径"不能有零长度。 C:\ TEMP \ MyProject.fsproj
两台机器都有:
我认为异常是指项目文件的这一部分,而且$(FSharpTargetsPath)可能没有填写?
<Choose>
<When Condition="'$(VisualStudioVersion)' == '11.0'">
<PropertyGroup Condition="Exists('$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets')">
<FSharpTargetsPath>$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.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)" />