Fable: dotnet-fable erfordert eine bestimmte Version des dotnet SDK

Erstellt am 25. Mai 2017  ·  3Kommentare  ·  Quelle: fable-compiler/Fable

Beschreibung

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:

  • zwingt den Benutzer zur Aufrechterhaltung einer unbedingten Anforderung?

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.

Repro-Code

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.

Erwartete und tatsächliche Ergebnisse

Erwarten Sie, dass es erstellt wird, solange F#-Build erfolgreich ist.

Zugehörige Informationen

  • Fable-Compiler-Version: 1.0.6
  • Fable-Core-Version: n/a
  • Betriebssystem: OSX

Hilfreichster Kommentar

Problemumgehung (wird so schnell wie möglich PR zur Fehlerbehebung senden):

  • mach dotnet -d fable
  • wird einige Diagnosen anzeigen, finden Sie die
    packagedcommandspecfactory: Looking for prefercliruntime file at `C:\Users\e.sada\.nuget\packages\dotnet-fable\1.0.6\lib\netcoreapp1.0\..\..\prefercliruntime`
  • erstelle diese Datei C:\Users\e.sada\.nuget\packages\dotnet-fable\1.0.6\lib\netcoreapp1.0\..\..\prefercliruntime (leer ist ok)

Jetzt sollte es funktionieren

Alle 3 Kommentare

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):

  • mach dotnet -d fable
  • wird einige Diagnosen anzeigen, finden Sie die
    packagedcommandspecfactory: Looking for prefercliruntime file at `C:\Users\e.sada\.nuget\packages\dotnet-fable\1.0.6\lib\netcoreapp1.0\..\..\prefercliruntime`
  • erstelle diese Datei 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

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen