Aws-lambda-dotnet: Fehler beim Bereitstellen beim Verweisen auf eine .NET Standard-Bibliothek

Erstellt am 2. Sept. 2017  ·  5Kommentare  ·  Quelle: aws/aws-lambda-dotnet

Ich habe vor kurzem festgestellt, dass ich die folgende Fehlermeldung auf dotnet lambda deploy-serverless erhalte, wenn ich meinem serverlosen Projekt einen Verweis auf ein Projekt hinzufüge, das auf .NET Standard 1.4 abzielt:

Error: Project is referencing NETStandard.Library version 1.6.1. Max version supported by netcoreapp1.0 is 1.6.0.
Error: NETStandard.Library 1.6.1 is used for target framework netcoreapp1.1.
Error: Check the following dependencies for versions compatible with netcoreapp1.0:
Error:  amazon.lambda.apigatewayevents : 1.1.0
Error:  amazon.lambda.serialization.json : 1.1.0
Error:  testclasslibrary : 1.0.0

Reproduzieren. Von Visual Studio 2017 (neueste Updates installiert):

  • Datei -> Neues Projekt
  • Wählen Sie eine serverlose AWS-Anwendung (.NET Core) aus.
  • Wählen Sie alles für die Blaupause aus. Ich habe mich für die Blog-API entschieden
  • Aus dem Projektverzeichnis

    • Dotnet-Wiederherstellung

    • Dotnet-Build

    • dotnet Lambda Deploy-Serverless

  • Beachten Sie, dass die Bereitstellung funktioniert
  • Klicken Sie mit der rechten Maustaste auf die Lösung in VS. .NET-Standardklassenbibliothek hinzufügen
  • Ändern Sie das Targeting der Bibliothek auf .NET Standard 1.4
  • Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Abhängigkeiten unter der serverlosen App
  • Fügen Sie der Klassenbibliothek eine Projektreferenz hinzu
  • Datei -> Alle speichern
  • Aus dem Projektverzeichnis

    • Dotnet-Wiederherstellung

    • Dotnet-Build

    • dotnet Lambda Deploy-Serverless

  • Beachten Sie, dass die Bereitstellung fehlschlägt
guidance

Hilfreichster Kommentar

In Ihrer csproj-Datei für die Klassenbibliothek können Sie dem TargetFramework Folgendes als gleichgeordnetes Element hinzufügen, um zu erzwingen, dass die implizite Referenz von NETStandard.Library 1.6.0 lautet.

<NetStandardImplicitPackageVersion>1.6.0</NetStandardImplicitPackageVersion>

Alle 5 Kommentare

Dies scheint übrigens unabhängig davon zu passieren, welche Version von .NET Standard Sie in der Klassenbibliothek anvisieren.

In Ihrer csproj-Datei für die Klassenbibliothek können Sie dem TargetFramework Folgendes als gleichgeordnetes Element hinzufügen, um zu erzwingen, dass die implizite Referenz von NETStandard.Library 1.6.0 lautet.

<NetStandardImplicitPackageVersion>1.6.0</NetStandardImplicitPackageVersion>

Schließen, da ich glaube, dass mein letzter Kommentar Sie entsperren sollte. Wenn nicht, können Sie gerne wieder öffnen.

Das hat funktioniert. Danke.

danke @normj - dieses Tag hat es geschafft!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen