Aws-lambda-dotnet: Ошибка при развертывании при обращении к библиотеке .NET Standard

Созданный на 2 сент. 2017  ·  5Комментарии  ·  Источник: aws/aws-lambda-dotnet

Недавно я обнаружил, что если я добавляю ссылку на проект, ориентированный на .NET Standard 1.4, в мой бессерверный проект, я получаю следующую ошибку в dotnet lambda deploy-serverless :

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

Воспроизвести. Из Visual Studio 2017 (установлены последние обновления):

  • Файл -> Новый проект
  • Выберите бессерверное приложение AWS (.NET Core)
  • Подберите что-нибудь для чертежа. Я выбрал API блога
  • Из каталога проекта

    • dotnet восстановление

    • сборка dotnet

    • безсерверное развертывание dotnet lambda

  • Обратите внимание, что развертывание работает
  • Щелкните правой кнопкой мыши решение в VS. Добавить стандартную библиотеку классов .NET
  • Измените таргетинг библиотеки на .NET Standard 1.4
  • В обозревателе решений щелкните правой кнопкой мыши Зависимости в бессерверном приложении.
  • Добавить ссылку на проект в библиотеку классов
  • Файл -> Сохранить все
  • Из каталога проекта

    • dotnet восстановление

    • сборка dotnet

    • безсерверное развертывание dotnet lambda

  • Обратите внимание, что развертывание не удается
guidance

Самый полезный комментарий

В вашем файле csproj для библиотеки классов можно добавить следующее в качестве родственного элемента в TargetFramework, чтобы неявная ссылка на NETStandard.Library была равна 1.6.0.

<NetStandardImplicitPackageVersion>1.6.0</NetStandardImplicitPackageVersion>

Все 5 Комментарий

Между прочим, это, по-видимому, происходит независимо от того, на какую версию .NET Standard вы нацеливаетесь в библиотеке классов.

В вашем файле csproj для библиотеки классов можно добавить следующее в качестве родственного элемента в TargetFramework, чтобы неявная ссылка на NETStandard.Library была равна 1.6.0.

<NetStandardImplicitPackageVersion>1.6.0</NetStandardImplicitPackageVersion>

Закрытие, поскольку я считаю, что мой последний комментарий должен разблокировать вас. Если нет, не стесняйтесь открывать заново.

Это помогло. Спасибо.

спасибо @normj - этот тег сделал

Была ли эта страница полезной?
0 / 5 - 0 рейтинги