NET framework end of Support — check project support dates

Reads a .csproj or global.json and dates every target framework against Microsoft's published end-of-support day, then against the support period you promise buyers. Runs entirely in your browser — nothing is uploaded.

Sweep every project file in the workspace and write the dated support-window evidence file
$29 once · one licence key per person or team seat · Having a contractor inventory runtime support dates across a solution and write the evidence page is commonly quoted as a multi-day engagement.

Same engine as the VS Code extension, byte for byte.

Install free

Free for the file open in your editor - no key, no limit. The workspace sweep and the report ask for a key.

VS Code MarketplacenpmMCP server (npx)Docker Hub
ext install ReadyStack.dotnet-eol-support-gate
npx @readystack/dotnet-eol-support-gate <file>
npx @readystack/dotnet-eol-support-gate --mcp

Team? One key for every ReadyStack linter, 5 seats, $149 once

Get the full rule table as a PDF
All 10 rules .NET EOL & CRA Support Window Gate checks, each with its source and date, on printable pages you can hand to your team or auditor. We email it now, and once more only if a rule changes. No newsletter.

Get the full version $29

Runs the same dating over every project file in the workspace in one pass and writes the dated support-window evidence file you keep and hand to an auditor.

One payment, one licence key for this tool. The key is shown right after payment.

Having a contractor inventory runtime support dates across a solution and write the evidence page is commonly quoted as a multi-day engagement

Buy the full version — $29
ENDEJAESPT

Find a tool

· ReadyStack

Worked example

Real numbers from this tool, line by line.

net8.0 takes its last security patch in 58 days — for EU .NET and .NET MAUI maintainers that day is 10 November 2026, and nothing in the .csproj says so.

== _fixtures/dirty.csproj — 9 findings ERRO L6 nuget_audit_off NuGetAudit is switched off, so no package in this project is checked against the advisory database at build time. WARN L1 support_period_undeclared No support period is declared in this file, so the gate uses the CRA Article 13(8) floor: 5 years from 2026-12-01, ending 2031-12-01. ERRO L4 tfm_ends_soon net8.0 stops receiving security fixes on 2026-11-10, in 58 days. ERRO L4 support_window_gap net8.0 dies on 2026-11-10, but the support period running to 2031-12-01 leaves 61 months you have promised to patch on a runtime nobody patches. ERRO L4 tfm_out_of_support net9.0 lost security servicing on 2026-05-12 — 124 days ago. ERRO L4 tfm_out_of_support net6.0 lost security servicing on 2024-11-12 — 670 days ago. ERRO L10 runtime_bound_package Microsoft.AspNetCore.Authentication.JwtBearer 6.0.36 follows the .NET 6 lifecycle, which ended on 2024-11-12. ERRO L11 runtime_bound_package Microsoft.EntityFrameworkCore 9.0.4 follows the .NET 9 lifecycle, which ended on 2026-05-12. ERRO L12 xamarin_retired Xamarin.Essentials 1.8.1 is a Xamarin package; Xamarin support ended on 2024-05-01, 865 days ago.

One ordinary project file, dated as of 2026-09-13: 9 findings from 10 rules, each carrying its line number and the arithmetic behind it. The clean net10.0 fixture returns none.

The dates are public and fixed, and they live nowhere near the file where the decision is made. The project file says net8.0. It does not say that the last patch for it lands on 2026-11-10. Ask a model instead and it will name a month with total confidence, drawn from whenever its training stopped.

The second number is the one nobody computes by hand. The EU Cyber Resilience Act, Regulation (EU) 2024/2847, entered into force on 2024-12-10. Its vulnerability-reporting duties apply from 2026-09-11, and the rest applies from 2027-12-11. Article 13(8) requires the manufacturer to determine a support period for the product and to hold it for at least 5 years unless the expected product lifetime is shorter. A support period is a patching promise, and a patching promise is only as good as the runtime underneath it.

So the gate does the subtraction. Give it the day you place the product on the market and the number of years you are promising, and it reports the overhang in months. With a 5-year period starting 2026-12-01, a net8.0 project leaves 61 months of promised patching sitting on a runtime whose last security fix lands on 2026-11-10. Even net10.0, the current LTS, only reaches 2028-11-14 — which means this is not a version bump you slot into a sprint, it is a retarget you put on a roadmap.

Change the inputs and the answer changes, because this is arithmetic and not advice: a library declaring a three-year period on net10.0 comes back clean, its declaration read straight out of a SupportedUntil element instead of the five-year floor.

Ten checks run on every pass: tfm_out_of_support, tfm_ends_soon, support_window_gap, support_period_undeclared, framework_retired, xamarin_retired, sdk_pin_out_of_support, preview_runtime, runtime_bound_package and nuget_audit_off. The last one matters: CRA Annex I Part II covers the components you ship, and transitive dependencies are components you ship.

Dating the file you have open is free and needs no key, in the editor or on the free web page that runs the same engine. Paste a project file, set the date, set the support period. The licensed job is a different one: sweeping every project file in the workspace in one pass and writing the dated support-window evidence file you keep — the artifact an auditor asks for, rather than the answer one developer needed today.

Questions people ask

What does the .NET EOL & CRA Support Window Gate actually do?

It reads a .csproj, Directory.Build.props or global.json and dates it twice. First against the .NET release lifecycle: net9.0 ended on 2026-05-12, net8.0 ends on 2026-11-10, net10.0 runs to 2028-11-14. Then against the support period you promise buyers, reporting the months of promised patching that land after your runtime stops being patched.

Who is this for?

Maintainers of .NET and .NET MAUI products sold into the EU, who under the Cyber Resilience Act must determine a support period of at least 5 years and hold it. Also anyone inheriting a solution and needing to know, by date, which of its projects are already unpatched before quoting the upgrade.

Why not just ask a chatbot which .NET versions are supported?

Lifecycle dates move and models answer from a training snapshot, confidently naming the wrong month. This gate carries the dates as data and does the subtraction against your file and today's date, so the answer is a day count you can put in a ticket rather than a sentence you have to verify.

What is free and what needs a licence key?

Dating the file you have open is free forever and needs no key: all 10 checks, every date, every day count. The licensed part is a different job - sweeping every project file in the workspace at once and writing the dated support-window evidence file you keep for an audit.

What would this cost done by a person?

Inventorying target frameworks, SDK pins and runtime-bound packages across a real solution, dating each against the lifecycle, and writing the evidence page is commonly quoted as a multi-day consulting engagement. The gate is $29 once,, and the free tier already answers the single-file question.

Why not just ask ChatGPT or another AI chat?

A general AI chat answers from training data with a cutoff date, cannot read your repository and names no rule version. .NET EOL & CRA Support Window Gate checks the file you open against 10 rules from a rule set dated 2026-09-20, and points at the exact line. For a filing, an audit or a client you need that dated result on your own files.

Ask about this tool

One question, answered by the person who built it. Your email only if you want the answer sent.

Embed this tool on your site (free)

Paste this code into your page. It runs in your visitor’s browser and stays up to date. Nothing your visitors type is stored.

 All embeddable tools

For businesses: your name and logo instead of ours, and each visitor’s result + e-mail in your inbox (only when they tick consent) — Pro from $19/month. See Pro →