> For the complete documentation index, see [llms.txt](https://primer2.dynamobim.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://primer2.dynamobim.org/1_developer_primer_intro/8_updating_packages/2-updating-your-packages-and-dynamo-libraries-for-dynamo-3x-net8.md).

# Updating your Packages and Dynamo Libraries for Dynamo 3.x

### Introduction <a href="#introduction" id="introduction"></a>

This section contains information on issues you may encounter while migrating your graphs, packages, and libraries to Dynamo 3.x.

Dynamo 3.0 is a major release, and some APIs have been changed or removed. The biggest change that is likely to affect you as a developer or user of Dynamo 3.x is the move to .NET8.

Dotnet/.NET is the runtime that powers the C# language that Dynamo is written in. We have updated to a modern version of this runtime along with the rest of the Autodesk ecosystem.

You can read more in [our blog post](https://dynamobim.org/dynamo-on-net-8/).

***

### Package Compatibility <a href="#package-compatibility" id="package-compatibility"></a>

#### Using Dynamo 2.x Packages in Dynamo 3.x

Because Dynamo 3.x now runs on the .NET8 runtime, packages that were built for Dynamo 2.x (*using .NET48*) are not guaranteed to work in Dynamo 3.x. When you attempt to download a package in Dynamo 3.x that was published from a Dynamo version less than 3.0, you will get a warning that the package is from an older version of Dynamo.

**This does not mean the package will not work** It's simply a warning that there could be compatibility issues, and in general it's a good idea to check if there's a newer version that has been built specifically for Dynamo 3.x.

You may also notice this type of warning in your Dynamo log files at package load time. If everything is working correctly, you can ignore it.

#### Using Dynamo 3.x Packages in Dynamo 2.x

It's very unlikely that a package built for Dynamo 3.x (*using .Net8*) is going to work on Dynamo 2.x. You will also see a warning when downloading packages built for newer versions of Dynamo while using an older version.

#### .NET Compability between minor releases

Compatibility across Dynamo minor versions isn't guaranteed just because the package's API surface hasn't changed. It specifically depends on whether the underlying .NET version is the same:

> 1. Same .NET version across versions: If a package is built for Dynamo 3.(N+1) and that version uses the same .NET runtime as >Dynamo 3.N, the package will likely also work fine in 3.N — as long as the package doesn't use any APIs that changed or were added >between those versions.
> 2. Different .NET version across versions: If Dynamo 3.(N+1) jumped to a new major .NET version (e.g., .NET 8 → .NET 10) while 3.N >is still on the older one, then a package built for 3.(N+1) is not safe to use in 3.N. The runtime mismatch could cause it to fail >or behave unpredictably (missing APIs, binary incompatibility, etc.).
