F#PowerPack 2.0.0.0问题:任务......“... \ fslex.exe”无效

时间:2010-05-27 16:47:46

标签: f#

我今天已将F#PowerPack从1.9.9.9升级到最新的2.0.0.0,并尝试从此处重建MiniCalc示例: http://achrissmith.blogspot.com/2010/04/fslex-and-fsyacc-examples-updated.html

如果我在VS 2010中构建它,则会失败并显示以下消息: 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

如果我将fslexfsyacc复制到这两个目录,问题就会变得“固定”,所以之后我可以从命令行和VS 2010构建。但它看起来不像喜欢解决问题的正确方法。什么是正确的方法?

编辑:对于源自May2010\workyard\tests\LexAndYaccMiniProject的PowerPack示例,同样的问题也是如此。现在(在我完成的技巧之后)它也很好。

2 个答案:

答案 0 :(得分:2)

事实证明这是一个错误。看到: 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

答案 1 :(得分:0)

罗马是对的; PowerPack May2010版本已经更新以解决此问题。