我尝试在两台不同的计算机上使用MSBuild在一个解决方案中构建2个F#项目。
这是我建立时发生的事情:
计算机1:MSBuild有效。
计算机2:MSBuild失败,一个项目出现The target "Build" does not exist in
the project
错误,另一个项目失败The value "" of the "Project" attribute in element <Import> is invalid. Parameter "path" cannot have zero length
。在Xamarin出现意外之前,计算机2没有问题地构建了解决方案。
使用Visual Studio构建适用于两个计算机。
计算机2的问题可能是通过修改Windows安装并从头开始重新安装所有内容来解决的,但任何不那么残酷的解决方案都会受到欢迎。
这个问题听起来有点像现有的FSharp build fails in MSBuild, but works ok in Visual Studio问题,但有问题的.fsproj文件已经按照接受的答案规定的方式使用TargetFSharpCoreVersion
。
答案 0 :(得分:1)
似乎几乎每个使用FAKE(F#Make)的GitHub F#项目都可以从普通的命令提示符构建,但到目前为止,我发现了一个例外:我自己的Mpir.NET。这必须使用 Visual Studio的开发人员命令提示符或 Visual Studio的MSBuild命令提示符构建。
开发人员提示设置许多环境变量。在这个特定情况下,问题中的VisualStudioVersion
变量在计算机2上产生了差异。奇怪的是,计算机1也没有设置变量,但无论如何它都有效。找出确切原因,并不值得。只需使用MSBuild命令提示符。