Alle dotnet
Projekte, die ich bisher habe, wurden mit der SDK-Version 1.0.3 erstellt und dotnet-fable
1.0.4 war damit zufrieden. Beim Upgrade auf paketverwaltete Abhängigkeiten habe ich die dotnet-fable
cli-Version als "1.0.*" angegeben und sie hat den Build mit dem Fehler abgebrochen:
Das angegebene Framework 'Microsoft.NETCore.App', Version '1.0.5' wurde nicht gefunden.
- Überprüfen Sie Anwendungsabhängigkeiten und richten Sie eine Framework-Version aus, die unter installiert ist:
/usr/local/share/dotnet/shared/Microsoft.NETCore.App- Folgende Versionen sind installiert:
1.0.3
1.0.4
1.1.0
1.1.1- Alternativ installieren Sie die Framework-Version '1.0.5'.
Anscheinend stellt die Version 1.0.6 von dotnet-fable
diese Anforderung für die SDK-Version. Es gibt nichts _irgendwo_ in meinem Arbeitsverzeichnis, das auf 'Microsoft.NETCore.App', version '1.0.5'
verweist, keine Möglichkeit zu sagen, was dies erfordert. Es gibt auch keine offensichtliche Möglichkeit, dies zu überschreiben.
Im Moment habe ich die Dotnet-Fable-Version in der Projektdatei gesperrt, aber in Zukunft und
Wenn man bedenkt, dass das SDK jeden Monat oder so veröffentlicht wird:
Ich habe eine neuere Version von SDK, daher ist diese Anforderung eindeutig nicht einmal abwärtskompatibel , was bedeutet, dass das Ausführen mehrerer Projekte in verschiedenen Versionen ein DevOps-Albtraum sein wird.
https://github.com/fable-elmish/sample-react-counter
Ändern Sie das fsproj in dotnet-fable
version="1.0.*" und hoffen Sie, dass Sie die richtige Version des SDK haben.
Erwarten Sie, dass es erstellt wird, solange F#-Build erfolgreich ist.
OMG, das ist verrückt. Willkommen in der Hölle der Netcore-Versionsverwaltung :fire: dotnet-fable Targets netcoreapp1.0 . Ich denke, die Abhängigkeit von der 1.0.5-Laufzeit kommt nur, weil ich diese Laufzeit auf meinem Computer installiert hatte, als ich sie erstellte, aber ich wusste nicht, dass neue Patch-Versionen nicht abwärtskompatibel sind 😡
Bitte beachten Sie, dass die Laufzeit- und SDK-Versionen zwei verschiedene Dinge sind, siehe hier
Leider bin ich mir nicht sicher, wie ich das verhindern kann, vielleicht wird @enricosada wie immer unsere Retterin sein?
Bis Paket DotNetCliToolReference
Elemente verwalten kann, wird empfohlen, die dotnet-fable
Version an die Fable.Core-Version in paket.dependencies anzuheften, wie dies in den Vorlagen der Fall ist.
Problemumgehung (wird so schnell wie möglich PR zur Fehlerbehebung senden):
dotnet -d fable
packagedcommandspecfactory: Looking for prefercliruntime file at `C:\Users\e.sada\.nuget\packages\dotnet-fable\1.0.6\lib\netcoreapp1.0\..\..\prefercliruntime`
C:\Users\e.sada\.nuget\packages\dotnet-fable\1.0.6\lib\netcoreapp1.0\..\..\prefercliruntime
(leer ist ok)Jetzt sollte es funktionieren
Als Notiz für die Nachwelt.
dies betrifft Benutzer mit .NET Command Line Tools (1.0.1)
(versuchen Sie dotnet --info
) mit dotnet-fable
Version 1.0.5
oder 1.0.6
.
Ist ok mit .NET Command Line Tools (1.0.4)
mit jeder dotnet-fable
Version, auch früher
Hilfreichster Kommentar
Problemumgehung (wird so schnell wie möglich PR zur Fehlerbehebung senden):
dotnet -d fable
packagedcommandspecfactory: Looking for prefercliruntime file at `C:\Users\e.sada\.nuget\packages\dotnet-fable\1.0.6\lib\netcoreapp1.0\..\..\prefercliruntime`
C:\Users\e.sada\.nuget\packages\dotnet-fable\1.0.6\lib\netcoreapp1.0\..\..\prefercliruntime
(leer ist ok)Jetzt sollte es funktionieren