AWS Developer Tools Blog

What’s New in the AWS Deploy Tool for .NET

Version 2.0 of the AWS Deploy Tool for .NET is now available. This new major version introduces several foundational upgrades to improve the deployment experience for .NET applications on AWS.

The tool comes with new minimum runtime requirements. We have upgraded it to require .NET 8 because the predecessor, .NET 6, is now out of official support from Microsoft. The tool also requires Node.js 18.x or later because this version of Node.js is the new minimum version that the AWS Cloud Development Kit (CDK) supports, which is a dependency.

Outside of these prerequisites, there are no other breaking changes to the tool’s commands or your existing deployment configurations. We expect a smooth upgrade for most users. Let’s get into the details.

Breaking Changes

This section details the mandatory changes required to use version 2.0.

.NET 8 Runtime Requirement

The AWS Deploy Tool for .NET is now built on .NET 8, replacing the previous .NET 6 runtime. As noted in the introduction, we made this change because .NET 6 is now out of official support from Microsoft.

To use this new version, you must have the .NET 8 installed on your development machine. This mandatory upgrade ensures that the deploy tool itself remains on a secure, stable, and supported foundation for the future.

Node.js 18 Prerequisite

We also updated the minimum required Node.js version for the deploy tool to 18.x (from 14.x). This is necessary because Node.js 18 is the new minimum version for the CDK, which is one of the underlying dependencies for the deploy tool. Please ensure that you have Node.js 18 or later installed on your development machine.

New Features and Key Updates

Container engine flexibility with support for Podman

In addition to Docker, the deploy tool now includes support for Podman as a container engine. The deploy tool now automatically detects both Docker and Podman on your machine. To ensure a consistent experience for existing users, the tool defaults to Docker if it is running. If Docker is not running, the tool then checks for an available Podman installation and uses that as the container engine. This gives you more flexibility in your container workflow while maintaining predictable behavior.

.NET 10 deployment support

To ensure adoption of the latest .NET versions as they become available, this release adds support for deploying .NET 10 applications.

For deployment targets such as AWS Elastic Beanstalk that might not have a native .NET 10 managed runtime at the time of its release, the deploy tool automatically publishes your project as a self-contained deployment bundle. This bundle includes the .NET 10 runtime and all necessary dependencies alongside your application code. This approach allows your .NET 10 application to run on the target environment without requiring a pre-installed runtime, providing a smooth path forward as you upgrade your projects.

Other Notable Updates

This release also includes other important foundational and dependency updates:

  • Optimized Dockerfile Generation: When deploying to a container-based service such as Amazon Elastic Container Service (Amazon ECS), the deploy tool generates a Dockerfile if one doesn’t already exist. Previously, to run Single Page Applications (SPAs), the generated Dockerfile included steps to install Node.js in the container’s build stage. This is no longer the default behavior. By removing the Node.js installation from the build image, you will see improved container build times and a reduced number of dependencies to manage during the build process. If your application requires Node.js for its build (for example, an Angular or React frontend), you must now add the required installation steps to the generated Dockerfile.
  • Upgraded CLI Foundation: The command-line handling library has been switched to Spectre.CLI. This provides the foundation for future improvements like interactive guided deployments and enhanced output formatting.
  • AWS CDK: We’ve updated the AWS Cloud Development Kit (CDK) library to version 2.194.0 and the CDK CLI to 2.1013.0.
  • AWS SDK for .NET V4: The tool now leverages version 4 of the AWS SDK for .NET, bringing in the latest features in performance-optimized packages.
  • Microsoft Templating Engine: We also updated the engine that powers our project recipes from .NET 5 to .NET 8, improving the reliability of the templating experience.

How to Get the New Version

Ready to get started? The new version is available for both .NET CLI and Visual Studio.

For the .NET CLI:

To update to the latest version, simply run the following command:

dotnet tool update -g AWS.Deploy.Tools

If you’re a new user, use this command to install the tool:

dotnet tool install -g AWS.Deploy.Tools

For Visual Studio:

These deployment features are integrated into the AWS Toolkit for Visual Studio. To get the latest updates:

  • Open Visual Studio
  • Go to Extensions > Manage Extensions.
  • In the Updates tab on the left pane, find the AWS Toolkit for Visual Studio and choose Update.
  • You will need to close Visual Studio for the update to be installed.

If you don’t already have the AWS Toolkit installed, see the installation instructions.

What’s Next?

We will continue to expand the feature scope to make sure that deploying .NET applications to AWS is as easy as possible. Please install or upgrade to the latest version of this deployment tool (CLI or toolkit), try a few deployments, and let us know what you think by opening a GitHub issue.

To learn more, check out our Developer guide. The .NET CLI tooling is open source and our Github repo is a great place to provide feedback. Bug reports and feature requests are welcome!

Philippe El Asmar

Philippe El Asmar

Philippe is a software development engineer on the .NET SDK team at AWS. He is working on projects and tools that aim to improve .NET developer's experience on AWS. You can find him on GitHub @philasmar.