Open sandboxFocusImprove this doc
  • Article

List of NuGet packages

Metalama comprises several NuGet packages. However, some are only used for testing or troubleshooting and should not be included in your public packages.

Package list

Package Name Scenarios Description
Metalama.Framework.Redist Run-Time Execution This is the only package required to execute code built with Metalama. It does not contain or reference the assets required to build with Metalama.
Metalama.Framework Compiling, Testing, Introspection This is the typical top-level package for a project that defines Metalama aspects.
Metalama.Compiler Compiling This package replaces Microsoft's C# compiler (Roslyn) with Metalama's own fork.
Metalama.Compiler.Sdk Compiling This package defines the extensibility API of Metalama.Compiler.
Metalama.Framework.Sdk Compiling This package defines the low-level extensibility API of Metalama.Framework (extensions using the Roslyn API).
Metalama.Testing.AspectTesting Testing This is the top-level package for test projects. It references Metalama.Framework but inhibits most of its behaviors. See Testing the aspect's code generation and error reporting.
Metalama.Framework.Engine Testing, Introspection This is the principal implementation assembly of Metalama. It is required by the testing and introspection packages. However, it should not be used directly as there is no forward compatibility promise for this package.
Metalama.Framework.Introspection Introspection This package allows querying the code model representing the output of the Metalama process.
Metalama.Framework.Workspaces Introspection This package allows any application to load a Visual Studio project or solution and to represent its code model and the Introspection of the Metalama process.

Package diagrams

Legend

Test and introspection
Compile-time
Run-time
Core
Your Code

Building, executing and testing

references
references
references
references
contains
references
inhibits
references
references
references
references
loads
loads
contains
Your Aspects
Metalama.Framework
Your Aspect Tests
Metalama.Framework.Redist
Metalama.Compiler
compiler add-ins
Metalama.Testing.AspectTesting
Metalama.Framework.Engine
xUnit
IDE
full compiler

Introspection

references
references
references
references
references
references
references
references
references
references
Metalama.Framework.Introspection
Metalama.Framework
Metalama.Framework.Workspaces
Metalama.Framework.Engine
Roslyn
Metalama.LinqPad
LinqPad Queries
Your Introspection App

SDK

contains
contains
references
loads
references
references
references
references
references
references
Your Package
Your Attributes
Your Weavers
Metalama.Framework
Metalama.Compiler
Metalama.Framework.Sdk
Metalama.Framework.Redist
Metalama.Compiler.Sdk
Roslyn