Skip to content

[UserError] Regression on dotnet package in v6 release - CreateApplicationBundle #2228

@carter-broom

Description

@carter-broom

Describe the bug

When building a package on Github Actions using dotnet publish using the new amazon.lambda.tools we get error:

Run dotnet tool install -g Amazon.Lambda.Tools
Tool 'amazon.lambda.tools' (version '6.0.0') was successfully installed.

Found /etc/os-release
Executing publish command
... invoking 'dotnet publish', working folder '/home/runner/work/app/bin/Release/net9.0/publish'
... dotnet publish "/home/runner/work/app" --output "/home/runner/work/app/bin/Release/net9.0/publish" --configuration "Release" --framework "net9.0" --self-contained true /p:GenerateRuntimeConfigurationFiles=true --runtime linux-x64
... publish:   Determining projects to restore...
....... >>>
Changed permissions on published file (chmod +rx System.Runtime.Serialization.Xml.dll).
Changed permissions on published file (chmod +rx System.ComponentModel.TypeConverter.dll).
Changed permissions on published file (chmod +rx System.Reflection.Primitives.dll).
Unknown error executing command: The value cannot be an empty string. (Parameter 'path')
   at System.ArgumentException.ThrowNullOrEmptyException(String argument, String paramName)
   at System.IO.Path.GetFullPath(String path)
   at Amazon.Lambda.Tools.LambdaPackager.CreateApplicationBundle(LambdaToolsDefaults defaults, IToolLogger logger, String workingDirectory, String projectLocation, String configuration, String targetFramework, String msbuildParameters, String architecture, Boolean disableVersionCheck, LayerPackageInfo layerPackageInfo, Boolean isNativeAot, Nullable`1 useContainerForBuild, String containerImageForBuild, String codeMountDirectory, String& publishLocation, String& zipArchivePath) in C:\build\src\Amazon.Lambda.Tools\LambdaPackager.cs:line 265
   at Amazon.Lambda.Tools.Commands.PackageCommand.PerformActionAsync() in C:\build\src\Amazon.Lambda.Tools\Commands\PackageCommand.cs:line 259
   at Amazon.Common.DotNetCli.Tools.Commands.BaseCommand`1.ExecuteAsync() in C:\build\src\Amazon.Common.DotNetCli.Tools\Commands\BaseCommand.cs:line 60

Previous version which loaded 5.13.2 did not have this problem:

Run dotnet tool install -g Amazon.Lambda.Tools
You can invoke the tool using the following command: dotnet-lambda
Tool 'amazon.lambda.tools' (version '5.13.2') was successfully installed.
Amazon Lambda Tools for .NET Core applications (5.13.2)
Project Home: https://github.com/aws/aws-extensions-for-dotnet-cli, https://github.com/aws/aws-lambda-dotnet
	
Found /etc/os-release
Executing publish command
... invoking 'dotnet publish', working folder '/home/runner/work/app/bin/Release/net9.0/publish'
... dotnet publish "/home/runner/work/app" --output "/home/runner/work/app/bin/Release/net9.0/publish" --configuration "Release" --framework "net9.0" --self-contained true /p:GenerateRuntimeConfigurationFiles=true --runtime linux-x64
... publish:   Determining projects to restore...
....... >>>
Changed permissions on published file (chmod +rx System.Runtime.Serialization.Xml.dll).
Changed permissions on published file (chmod +rx System.ComponentModel.TypeConverter.dll).
Changed permissions on published file (chmod +rx System.Reflection.Primitives.dll).
Zipping publish folder /home/runner/work/app/bin/Release/net9.0/publish to /home/runner/work/app/output/lambda/app.zip
Creating directory /home/runner/work/app/output/lambda

Regression Issue

  • Select this option if this issue appears to be a regression.

Expected Behavior

Compile

Current Behavior

Unknown error executing command: The value cannot be an empty string. (Parameter 'path')
at System.ArgumentException.ThrowNullOrEmptyException(String argument, String paramName)
at System.IO.Path.GetFullPath(String path)
at Amazon.Lambda.Tools.LambdaPackager.CreateApplicationBundle(LambdaToolsDefaults defaults, IToolLogger logger, String workingDirectory, String projectLocation, String configuration, String targetFramework, String msbuildParameters, String architecture, Boolean disableVersionCheck, LayerPackageInfo layerPackageInfo, Boolean isNativeAot, Nullable1 useContainerForBuild, String containerImageForBuild, String codeMountDirectory, String& publishLocation, String& zipArchivePath) in C:\build\src\Amazon.Lambda.Tools\LambdaPackager.cs:line 265 at Amazon.Lambda.Tools.Commands.PackageCommand.PerformActionAsync() in C:\build\src\Amazon.Lambda.Tools\Commands\PackageCommand.cs:line 259 at Amazon.Common.DotNetCli.Tools.Commands.BaseCommand1.ExecuteAsync() in C:\build\src\Amazon.Common.DotNetCli.Tools\Commands\BaseCommand.cs:line 60

Reproduction Steps

Build previously running 5.x to 6.x, fails.

Possible Solution

No response

Additional Information/Context

No response

AWS .NET SDK and/or Package version used

6.0.0

Targeted .NET Platform

.NET 9

Operating System and version

Linux Git Runner

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugThis issue is a bug.module/lambda-client-libp2This is a standard priority issuepending-releaseThis issue will be fixed by an approved PR that hasn't been released yet.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions