Bien Nguyen
May 25, 2026
visibility 2076
star star star star star
(5 votes)

Optimizely CMS 12 Now Fully Supports .NET 10

This is the latest installment in our ongoing series covering .NET version support for Optimizely products. If you've been following along, you may have read our earlier posts on this topic:

As the .NET ecosystem continues to evolve, staying current with supported frameworks is essential for security, performance, and long-term maintainability. We're pleased to confirm that Optimizely CMS 12 is fully compatible with .NET 10, and we encourage all customers to begin planning their upgrade path.

Why This Matters: .NET 8 and .NET 9 Are Approaching End of Support

Microsoft has confirmed that both .NET 8 and .NET 9 will reach end of support on November 10, 2026 (see this for more detail). Both have already entered the Maintenance phase, meaning updates are limited to security patches only. .NET 10, released November 11, 2025, is the current LTS release with support through November 2028 - giving you over two additional years of coverage.

CMS 12 and .NET 10: What You Need to Know

After thorough verification, we can confirm that CMS 12 is fully compatible with .NET 10. Our testing included CMS 12 sites with popular add-ons such as Optimizely Forms and Language Manager installed, and we can confirm that these add-ons work as expected on .NET 10 as well. Here's what you need to know about upgrading:

Recommended Package Versions

For the best experience, we recommend updating to the following package versions (or higher):

Package Minimum Recommended Version
EPiServer.Cms.Core 12.24.0
EPiServer.Cms.UI 12.34.4

These versions include dependency updates that resolve two known vulnerability warnings when running on .NET 10.

Running on Earlier CMS 12 Versions

If you are running an earlier version of CMS 12, the good news is that .NET 10 compatibility is not limited to the latest packages. Previous CMS 12 versions work with .NET 10 as well. However, you may encounter two dependency vulnerability warnings during build or restore. These warnings do not affect functionality but should be addressed for a clean security posture.

You have two options:

  1. Upgrade to the recommended CMS versions above - the simplest path, as the vulnerability warnings are resolved automatically.
  2. Manually update the affected dependencies - if upgrading CMS packages immediately is not feasible, you can resolve the warnings by updating the vulnerable transitive dependencies directly in your project file.

What About Commerce 14?

For customers running Optimizely Commerce 14 (Commerce Connect), please note that .NET 10 support is not yet available. We'll work on updating Commerce 14 (and relevant Commerce-specific addons) to support .NET 10, and expect to release a supported version of Commerce 14 for .NET 10 in late Q2 / early Q3 2026. We’ll share a follow-up announcement once the work is complete.

In the meantime, Commerce 14 customers should continue running on .NET 8 and monitor this space for updates.

Our Recommendation

We encourage all CMS 12 customers to target .NET 10 for new projects and begin planning upgrades for existing solutions. With .NET 10 being an LTS release supported through November 2028, it provides a stable, long-term foundation for your digital experience platform.

By upgrading now, you benefit from:

  • Extended support - over two additional years of framework support compared to .NET 8 and .NET 9.
  • Performance improvements - each .NET release brings meaningful runtime and compilation enhancements.
  • Security - staying on a supported framework ensures you receive critical security patches.

Need Help?

If you have questions about upgrading to .NET 10 or encounter any issues, our support team and developer community are here to help. Visit the Optimizely Developer Documentation for the latest system requirements, or reach out to Optimizely Support for direct assistance.

May 25, 2026

Comments

Mark Stott
Mark Stott May 26, 2026 02:35 PM

If those versions had actually been compiled as .NET 10 I would have found a way to give you more than 5 stars ✨😊

But it's great to hear we can bump our customers onto the latest versions of .NET.

Piotr
Piotr May 27, 2026 02:46 PM

Great to see official .NET 10 support in CMS 12 👏 Just went through a large-scale upgrade across multiple solutions and can confirm – most of the work is in the dependency graph, not the framework switch itself.

I’ve shared a few practical lessons from the field here: https://lnkd.in/dpKa8-5w

Daniel Copping
Daniel Copping Jun 9, 2026 06:23 AM

Good to see .NET 10 support in CMS 12 is here. 

I'm just trying the update to EPiServer.CMS 12.34.4 but getting build warnings due to dependency constraints.

EPiServer.Hosting 12.24.0 directly requires EPiServer.Framework 12.24.0. But EPiServer.CMS 12.34.4's transitive chain also resolves EPiServer.CMS.Core 12.23.1 → which pins EPiServer.Framework to exactly = 12.23.1

The next version up from EPiServer.Hosting is for 13.0.0, i.e. for CMS13, but we need to stay on CMS12.

Can we get a version of  EPiServer.Hosting that works with EPiServer.CMS 12.34.4

Or am I doing something wrong?

Bien Nguyen
Bien Nguyen Jun 9, 2026 10:24 AM

@Mark Stott, @Piotr: thank you :)

@Daniel Copping: the EPiServer.CMS 12.34.4 package specifies a dependency range of [12.23.1, 13.0.0) for EPiServer.Hosting, as shown here: nuget.optimizely.com/packages/episerver.cms/12.34.4 (so it resolved the 12.23.1 version when restoring the package). However since EPiServer.Hosting 12.24.0 falls within that range, I think you should be able to upgrade to that version directly without any compatibility issues. Thanks!

Daniel Copping
Daniel Copping Jun 10, 2026 01:39 AM

Thanks for clarifying! You're right that EPiServer.Hosting 12.24.0 falls within the range and resolves without hard errors. However, upgrading to it in practice does produce warnings, because EPiServer.Hosting 12.24.0 depends on EPiServer.Framework 12.24.0, while the rest of the CMS.AspNetCore.* family stays anchored at 12.23.1 due to NuGet's minimum version selection — the EPiServer.CMS umbrella's range lower bound is 12.23.1, so that's where NuGet floors them. Those 12.23.1 packages carry constraints expecting EPiServer.Framework = 12.23.1, hence the mismatch.

Currently, the fix is to explicitly pin EPiServer.CMS.AspNetCore, EPiServer.CMS.AspNetCore.Templating, EPiServer.CMS.AspNetCore.Routing, EPiServer.CMS.AspNetCore.Mvc, EPiServer.CMS.AspNetCore.HtmlHelpers, EPiServer.CMS.AspNetCore.TagHelpers, EPiServer.CMS.Core, and EPiServer.Framework.AspNetCore all to 12.24.0 in my project to raise the floor and bring the whole suite into alignment - I'd much prefer to avoid this.

It would be great if the EPiServer.CMS umbrella kept its sub-package lower bounds in sync with each EPiServer.Hosting release, so that upgrading through the umbrella automatically raises the floor on the CMS.AspNetCore.* family too — and consumers don't need to manually pin each one.

Bien Nguyen
Bien Nguyen Jun 10, 2026 08:23 AM

@Daniel Copping: That makes sense, we will investigate this further to enhance the upgrade experience. Thank you for the detail feedback!

error Please login to comment.
Latest blogs
Automated Search & Navigation to Graph Migration with Claude Code

A Claude Code plugin that scans your S&N codebase, applies Graph SDK transformations, and validates the result. Install once, run one command. CMS ...

Connor Fortin | Jun 24, 2026

Migrating from Find to Graph: Lessons Learned from a Real CMS 13 Project

While migrating a search solution from Optimizely Search & Navigation (Find) to Optimizely Graph in CMS 13, I encountered several issues that were...

Binh Nguyen Thi | Jun 24, 2026

Optimizely: Upgrade Opti-ID and .NET 10 in CMS 12

Many Optimizely customers are planning their roadmap around a future migration to Optimizely CMS 13. As a result, upgrades such as Opti ID adoption...

Madhu | Jun 23, 2026 |

Understanding Optimizely Graph: Caching, Webhooks & Avoiding Stale Content (Optimizely SaaS CMS)

📌 Scope: This post covers Optimizely CMS (SaaS) only — using the official @optimizely/cms-sdk and @optimizely/cms-cli packages with Next.js 15. If...

Kiran Patil | Jun 23, 2026 |