Workaround for "Failed to create template" Error with .NET 7 RC1 and Lambda Functions

If you are using AWS .NET Lambda templates and you install .NET 7 RC 1, you get an error when you try to create a new Lambda function project.

If you run -

dotnet new lambda.EmptyFunction --name MyFunction

You will get an error like this -

Template "Lambda Empty Function" could not be created.
Failed to create template.
Details: Object reference not set to an instance of an object.

The same error occurs when trying to create Lambda serverless projects -

dotnet new serverless.AspNetCoreWebAPI --name AspNetCoreWeblAPI

The workaround is to create a global.json in the folder where you want to create the Lambda project.

Check what version of .NET SDK you have installed -

dotnet --list-sdks

You will see the list of installed SDKs -

6.0.304 [C:\Program Files\dotnet\sdk]
6.0.401 [C:\Program Files\dotnet\sdk]
7.0.100-rc.1.22431.12 [C:\Program Files\dotnet\sdk]

Choose the version you want and run -

dotnet new globaljson --sdk-version 6.0.401

This creates a global.json file with the following content -

{
  "sdk": {
    "version": "6.0.401"
  }
}

Now your dotnet new lambda... commands will work.

To find out more about the global.json file, see this article.

One thing to keep in mind, if you are creating a Lambda custom runtime project to use .NET 7, you will need to delete the global.json file for compilation to work.

comments powered by Disqus

Related