Metalama 2027.0.1-preview
Pre-release
Pre-release
·
13 commits
to release/2026.1
since this release
Metalama 2027.0.1-preview is based on 2026.1.26, plus the following changes.
This release updates Metalama.Compiler to 2027.0.1-preview.
This is the first build of the 2027.0 line. It is built on Roslyn 5.10, the compiler bundled with the .NET SDK 11.0.100-preview.7, and it supports the .NET 10 and .NET 11 software development kits. The supported platform set is recorded as PB-2027.0 in platform-support.md. The supported target frameworks are .NET Framework 4.7.2 and later, .NET Standard 2.0 and 2.1, .NET 10 and .NET 11. Visual Studio 2022, .NET 8 and .NET 9 are no longer supported. This is a preview release, and it is not supported in production.
Breaking Changes
- #1876, #1913 Removed explicit support for .NET 8 and .NET 9, in Metalama and in Metalama.Premium. The supported .NET SDK versions are now 10.0 and 11.0. A project that targets
net8.0ornet9.0resolves thenetstandard2.0asset and continues to build, but that configuration is no longer tested. - #1881 Metalama now builds on Roslyn 5.10, and the Roslyn 4.12 payload variant is removed. The lowest supported Roslyn version is 5.0, which is the version that Visual Studio 2026 and the current Rider provide. Visual Studio 2022 is therefore no longer supported.
New
- #1829 Added the
[Durable]contract and the analyzer that verifies it.[Durable]declares that a type, a member or a parameter is safe to hold across compilations, and the analyzer reports a member that pins aCompilation, aSyntaxTree, aSemanticModel, anISymbolor a code model declaration. The analyzers are shipped in theMetalama.Frameworkpackage and report warnings without an opt-in. - #1872 Added the
[ImmutableType]contract and the analyzer that verifies it, so an aspect, a fabric or a validator that keeps mutable state is reported as it is written instead of through a defect whose symptom is that one target receives another target's data. - #1864 Added support for a new kind of license key, signed with Elliptic Curve DSA and SHA-256, beside the existing kind signed with finite field DSA and SHA-1. The new kind is required on macOS under .NET 11, which removed the finite field DSA algorithm from the platform.
- #1884 The build now reports
LAMA0600when the target framework, the .NET SDK or the Visual Studio version is outside the configuration matrix that Metalama tests. Set theMetalamaCheckSupportedPlatformproperty toFalse, or addLAMA0600toNoWarn, to silence the message. - #1887 The packages whose supported platforms are stricter than the framework's now declare their own requirement through the
MetalamaPlatformRequirementitem, soLAMA0600names the package that imposes the constraint. A single requirement can be excluded through theMetalamaSupportedPlatformExclusionitem. - #1896 Raised the language version of templates and compile-time code to C# 14, which the Roslyn 5.0 floor now permits.
- #1343
meta.Proceed()is now supported in a template that overrides a compiler-synthesized record member, such asEqualsorGetHashCode. It previously threwNotSupportedException. - #1920 The binary log of a failed nested reference-assembly build, which
LAMA0082reports, can now be copied to a chosen directory, so that the failure can be diagnosed from a continuous integration agent whose temporary directory is not reachable.
Enhancements
- #1873 The licence audit report now carries the user end device hash the way PostSharp computes it, so that a person who builds with both products is counted once across them. This affects the licence audit channel only, and not the anonymous usage channel.
Fixes
- #1898 Fixed a failure at design time when the Roslyn version of the host is below the supported floor. Metalama now behaves as if it were not installed, instead of failing while extracting its payload.
- #1928 Fixed the diagnostics that report an unsupported language version, which crashed instead of naming the version.
- #1930 Fixed the code refactoring providers of Metalama, which were disabled in the editor after an implementation type was renamed.
- #1932 Fixed two defects affecting C# 14 extension blocks: an attribute could not be added to a member of an extension block, and a validator registered on an extension block indexed no reference and reported nothing.
- #1885 Fixed the restore of the temporary project of the reference assembly locator on a user machine while Metalama is built against a prerelease Roslyn, whose package is published on a prerelease feed rather than on nuget.org.
- Metalama.Premium#88 Fixed the change-visibility code action on an interface member and on an indexer, and fixed the leading trivia of the accessibility keyword that it inserts.
Resources
- Milestone
- Full Changelog: release/2026.1.26...release/2027.0.1-preview