3 votes

F# (mono) pour VS Code sur MacOS : bugs

J'essaie d'utiliser F# avec VS Code (v1.17.2) sur MacOS (Sierra 10.12.6). Je pense avoir installé les dernières versions de Mono et du SDK .NET.

J'essaie juste de construire le projet simple décrit ici comme un test. https://github.com/s952163/FSharpVSCode

après mon installation par défaut, j'ai pu faire un MSBuild et exécuter le programme dans le terminal sans aucun problème. Cependant, à ce stade, (1) Intellisense ne fonctionne pas correctement, ne reconnaissant pas Deedle (2) dans l'explorateur F#, le message suivant s'affiche TestProject1.fsproj (load failed)". En faisant un clic droit, j'ai obtenu cette erreur

Erreur : MSBuild a échoué avec exitCode 1 Répertoire de travail : /Utilisateurs/francois-guillaume.rideau/Documents/FsharpVsCode/TestProject1 Exe Path : 'dotnet' Args : 'msbuild /Users/francois-guillaume.rideau/Documents/FsharpVsCode/TestProject1/TestProject1.fsproj /p:SkipCompilerExecution=true /p:ProvideCommandLineArgs=true /p:CopyBuildOutputToOutputDirectory=false /p:UseCommonOutputDirectory=true /t:_Inspect_FscArgs /p:_Inspect_FscArgs_OutFile=/var/folders/gm/z065gk616xg6g0xgn4c7_bvc0000gn/T/tmp52c377ed.tmp.FscArgs.txt /p:DesignTimeBuild=true /t:_Inspect_GetResolvedProjectReferences /p:_Inspect_GetResolvedProjectReferences_OutFile=/var/folders/gm/z065gk616xg6g0xgn4c7_bvc0000gn/T/tmpfe4a2c2.tmp.GetResolvedProjectReferences.txt /t:_Inspect_GetProperties /p:_Inspect_GetProperties_OutFile=/var/folders/gm/z065gk616xg6g0xgn4c7_bvc0000gn/T/tmpfe4a2c2.tmp.GetProperties.txt /nologo /verbosity:quiet' Journal : écriture du fichier cible de l'aide dans /Utilisateurs/francois-guillaume.rideau/Documents/FsharpVsCode/TestProject1/obj/TestProject1.fsproj.proj-info.targets /usr/local/share/dotnet/sdk/2.0.2/Microsoft.Common.CurrentVersion.targets(1122,5) : error MSB3644 : Les assemblages de référence pour le framework ".NETFramework,Version=v4.6.1" n'ont pas été trouvés. Pour résoudre ce problème installez le SDK ou le Targeting Pack pour cette version du framework ou reciblage de votre application sur une version du framework pour laquelle vous pour laquelle vous avez installé le SDK ou le Targeting Pack. Notez que les assemblages seront seront résolus à partir du Global Assembly Cache (GAC) et seront utilisés en à la place des assemblages de référence. Par conséquent, votre assemblage peut ne pas être correctement ciblé pour le framework que vous souhaitez. [/Users/francois-guillaume.rideau/Documents/FsharpVsCode/TestProject1/TestProject1.fsproj]

Pour essayer de résoudre ce problème, j'ai tapé ce qui suit

export FrameworkPathOverride=/Library/Frameworks/Mono.framework/Versions/Current/lib/mono/4.5/

mais pire encore, après cela, le projet ne se construit plus dans VS Code car j'obtiens cette sortie lorsque j'essaie (Cmd-Shift-P) MSBuild: Build Project

/usr/local/share/dotnet/sdk/2.0.2/Microsoft.Common.CurrentVersion.targets(1122,5) : error MSB3644 : The reference assemblies for framework ".NETFramework,Version=v4.6.1" were not found. Pour résoudre ce problème, installez le SDK ou le Targeting Pack pour cette version du framework ou recibler votre application sur une version du framework pour laquelle vous avez installé le SDK ou le Targeting Pack. Notez que les assemblages seront résolus à partir du Global Assembly Cache (GAC) et seront utilisés à la place des assemblages de référence. Par conséquent, il se peut que votre assemblage ne soit pas correctement ciblé pour le framework que vous souhaitez utiliser. [/Users/francois-guillaume.rideau/Documents/FsharpVsCode/TestProject1/TestProject1.fsproj]

capture d'écran ici https://imgur.com/KtMM2Bu

2voto

DaveC Points 311

L'environnement de VS Code est passé à msbuild lorsqu'il l'invoque, donc définir les variables d'environnement au démarrage de VS Code fait l'affaire :

FrameworkPathOverride=/Library/Frameworks/Mono.framework/Versions/Current/lib/mono/4.5/ code .

0voto

Gabriel Moral Points 10

Allez à l'emplacement du projet dans le terminal et ensuite exécutez FrameworkPathOverride=/Library/Frameworks/Mono.framework/Versions/Current/lib/mono/4.5/ code . comme dit précédemment.

Ensuite, vous devriez être en mesure de construire à nouveau.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X