уровни c# AWS с Microsoft.Расширения.Зависимость от инъекции.Пакет абстракций

#c# #aws-lambda #aws-lambda-layers

Вопрос:

Я пытаюсь создать слой для своей лямбда-функции, разработанной с помощью Net core 3.1, но я получаю следующую ошибку:

 zipping: Failed to compress file: open 
dotnetcorestorex64netcoreapp3.1microsoft.extensions.dependencyinjection.abstractions
5.0.0libnetstandard2.0Microsoft.Extensions.DependencyInjection.Abstractions.dll:
The system cannot find the path specified.
 

Команда, которую я использую, это:

 dotnet lambda publish-layer --region us-east-1 --layer-name my-Layers --layer-type runtime-package-store -sb sb-layers -f netcoreapp3.1 --package-manifest package-manifest.xml
 

Манифест пакета выглядит следующим образом:

 <Project Sdk="Microsoft.NET.Sdk">
    <ItemGroup>
        <PackageReference Include="Amazon.Lambda.APIGatewayEvents" Version="2.4.0" />
        <PackageReference Include="Amazon.Lambda.Core" Version="2.0.0" />
        <PackageReference Include="Amazon.Lambda.Serialization.SystemTextJson" Version="2.1.0" />
        <PackageReference Include="AWSSDK.DynamoDBv2" Version="3.7.0.73" />
        <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="5.0.2" />
        <PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="5.0.0" />
        <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
    </ItemGroup>
</Project>
 

Я вижу, что путь к файлу с ошибкой имеет «netstandard2.0», но я не знаю, почему. Может быть, мой вопрос глупый, означает ли это, что я не могу использовать «microsoft.extensions.dependencyinjection.абстракции» с Net Core 3.1?

Большое спасибо за любую информацию о том, как решить эту проблему.

Комментарии:

1. можете ли вы показать нам package-manifest.xml досье ?

2. @Ruben Я обновил свой пост с помощью манифеста пакета

3. @Ruben проблема была связана с длинным путем к файлу. Я изменил переменную среды TMP на «C:Temp» и это сработало.

Ответ №1:

Я попытался создать пакет и ни разу не потерпел неудачу

Итак, вот что я сделал.

Обновлен дистрибутив dotnet и новая установка инструментов aws lambda

 sudo apt-get install -y dotnet-sdk-5.0
dotnet tool install -g Amazon.Lambda.Tools
 

Я использовал образец разрушителя в соответствии с инструкциями по учебным пособиям AWS
Учебник по AWS

 dotnet lambda publish-layer DemoLayer --layer-type runtime-package-store -sb <s3bucket> --package-manifest manifest.xml
 

и выше в командной строке загружается вся ссылка на пакет без каких-либо ошибок.

Комментарии:

1. @JaimeCamargo= это сработало для вас?

2. проблема была связана с длинным путем к файлу. Я изменил переменную среды TMP на «C:Temp» и это сработало.