我今天已经将F# PowerPack从1.9.9.9升级到最新的2.0.0.0,并尝试从这里重新构建MiniCalc示例:http://achrissmith.blogspot.com/2010/04/fslex-and-fsyacc-examples-updated.html
如果我在VS2010中构建它,它会失败,并显示以下消息:C:\Program Files\MSBuild\FSharp\1.0\FSharp.PowerPack.targets(32,3): error MSB6004: The specified task executable location "C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\fslex.exe" is invalid.
如果我通过MSBuild从命令行构建它,它会报告缺少C:\Windows\Microsoft.NET\Framework\v4.0.30319\fslex.exe
如果我将fslex和fsyacc复制到这两个目录中,问题就会被“修复”,这样之后我就可以从命令行和VS2010进行构建。但这看起来不是解决问题的正确方法。正确的方式是什么?
编辑:来自sources:May2010\workyard\tests\LexAndYaccMiniProject的PowerPack示例也存在同样的问题。现在(在我完成了这项工作之后),它也构建得很好。
发布于 2010-05-28 02:04:58
事实证明这是一个bug。请参阅:http://fsharppowerpack.codeplex.com/WorkItem/View.aspx?WorkItemId=4548在那里解释了解决方法。我已经编写了一个PowerShell脚本来完成这个补丁:
# Run this after installation of F# PowerPack 2.0.0.0
$path = 'HKLM:\SOFTWARE\Microsoft\.NETFramework\AssemblyFolders\FSharp.PowerPack-1.9.9.9'
$null = New-Item $path -Force
$bin = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\.NETFramework\AssemblyFolders\FSharp.PowerPack-2.0.0.0').'(default)'
Set-ItemProperty $path '(default)' $bin发布于 2010-06-04 16:29:36
罗曼是对的;PowerPack May2010发行版已经更新以修复此问题。
https://stackoverflow.com/questions/2923082
复制相似问题