代码之家  ›  专栏  ›  技术社区  ›  Roman Kuzmin

F Powerpack 2.0.0.0问题:任务…“The task…”无效

f#
  •  1
  • Roman Kuzmin  · 技术社区  · 16 年前

    我已将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

    如果我复制的话,问题是固定 fslex fsyacc 这两个目录,之后我可以从命令行和VS2010构建。但这似乎不是解决问题的正确方法。正确的方法是什么?

    编辑:对于来自源的Powerpack示例,同样的问题是正确的: May2010\workyard\tests\LexAndYaccMiniProject . 现在(在我耍了这个花招之后)它也做得很好。

    2 回复  |  直到 15 年前
        1
  •  2
  •   Roman Kuzmin    16 年前

    原来是个虫子。见: 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
    
        2
  •  0
  •   Dmitry Lomov    15 年前

    罗曼是对的;Powerpack2010年5月发布的版本已经被更新以解决这个问题。