2010-05-27 2 views
1

J'ai mis à jour F # PowerPack aujourd'hui de 1.9.9.9 à la dernière version 2.0.0.0 et j'ai essayé de reconstruire l'échantillon MiniCalc à partir d'ici: http://achrissmith.blogspot.com/2010/04/fslex-and-fsyacc-examples-updated.htmlF # PowerPack 2.0.0.0 problème: La tâche ... "... fslex.exe" est invalide

Si je construis dans VS 2010, il échoue avec le message: 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.

Si par MSBuild il se plaint de manquer C:\Windows\Microsoft.NET\Framework\v4.0.30319\fslex.exe

Je construis depuis la ligne de commande le problème est en quelque sorte "Fixe" si je co py fslex et fsyacc à ces deux répertoires, donc après je peux construire à partir de la ligne de commande et de VS 2010. Mais il ne semble pas une bonne façon de résoudre le problème. Quelle est la bonne façon?

EDIT: Le même problème est vrai pour l'exemple PowerPack des sources: May2010\workyard\tests\LexAndYaccMiniProject. Maintenant (après l'astuce que j'ai fait), il est également bien construit.

Répondre

2

Il s'avère être un bug. Voir: http://fsharppowerpack.codeplex.com/WorkItem/View.aspx?WorkItemId=4548 La solution de contournement y est expliquée. J'ai écrit un script PowerShell qui fait le correctif:

# 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 
0

Roman a raison; la version PowerPack May2010 a depuis été mise à jour pour résoudre ce problème.

Questions connexes