.Net Core (2.1) - Лямбда-функция работает, а в 2.2 - нет? - PullRequest
1 голос
/ 16 июня 2019

Я создал простую пустую лямбда-функцию AWS, используя .Net Core 2.1:

enter image description here

Вот структура папок:

enter image description here

(здесь csproj )

И FunctionHandler, который получает DI и вызывает некоторый фиктивный метод:

enter image description here

Теперь давайте запустим «Локда-тестовый инструмент Mock», мы видим, что он работает:

enter image description here

Так в чем же проблема?

Я прочитал здесь , что поддерживается 2.2:

Это означает, что теперь вы можете создавать лямбда-функции, используя предварительный просмотр .NET Core 2.2 и .NET Core 3.0.Amazon.Lambda.RuntimeSupport доступен в виде исходного кода на GitHub или в виде пакета NuGet.

Итак, я создал новый пустой лямбда-проект, но с 2.2:

enter image description here

Тот же код.Но теперь, когда я запускаю «Mock Lambda Test Tool», я получаю сообщение об ошибке:

AWS .NET Mock Lambda Test Tool (0.9.2) Произошла неизвестная ошибка, приводящая к выходу из процесса: не удалось найти depsфайл .json в Amazon.Lambda.TestTool.Runtime.LocalLambdaRuntime.Initialize (каталог строк) в E: \ JenkinsWorkspaces \ Lam \ LambdaSandboxCoreCLRApi \ Tools \ LambdaTestTool \ Amazon.Lambda.TestTool \ Runtime \ atLabLasda: at LineLambdaLambda.TestTool.Program.Main (String [] args) в E: \ JenkinsWorkspaces \ Lam \ LambdaSandboxCoreCLRApi \ Tools \ LambdaTestTool \ Amazon.Lambda.TestTool \ Program.cs: строка 46 Нажмите любую клавишу для выхода

Вот ошибка:

enter image description here

Вопрос:

Почему это так?У меня не было файла deps.json в 2.1.

Так зачем он мне нужен в 2.2?Кроме того, что этот путь появляется в ошибке: E:\JenkinsWorkspaces ...?У меня нет ни Дженкинса, ни чего-то подобного.

1 Ответ

4 голосов
/ 16 июня 2019

Ну, я выяснил причину этого (я не знаю, почему это произошло на первом месте), но вот оно. Потерпи меня.

Когда я создал лямбда-проект 2.1, все было в порядке. (очевидно)

Проблема была с 2.2 проектами (нацеленность на 2.2 и нюгетами на 2.2). (который показывает ошибку, как я показываю в моем вопросе)

Тогда я подумал: а что, если я создам проект 2.1, а затем обновлю (!) Его нюгетеры и изменит цель на 2.2? ......... это сработало!

Это было действительно странно. Потому что я ожидал, что это не так.

Итак, я подумал, давайте сравним файловую систему для проекта 2.2 (который не работает) с проектом 2.1, который был обновлен до проекта 2.2 (который работает, на удивление).

С правой стороны, это строгие проекты 2.2 (без обновления), слева это проект, который ОБНОВЛЕН до 2.2:

enter image description here

Я заметил некоторые файлы .Net core 2.1, которые были в обновлении, но не были в строгой версии 2.2, поэтому я подумал, как мне получить эти недостающие файлы?

enter image description here

Итак, я изменил (временно) цель проекта до 2.1:

enter image description here

Тогда я запустил сборку

Это привело к появлению файлов для папок 2.1:

enter image description here

А теперь ............. все ок !!! :

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...