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.needs-triageThis issue or PR still needs to be triaged.potential-regressionMarking this issue as a potential regression to be checked by team member

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions