LeXtudio.Metadata.Mutable
0.9.5
Prefix Reserved
dotnet add package LeXtudio.Metadata.Mutable --version 0.9.5
NuGet\Install-Package LeXtudio.Metadata.Mutable -Version 0.9.5
<PackageReference Include="LeXtudio.Metadata.Mutable" Version="0.9.5" />
<PackageVersion Include="LeXtudio.Metadata.Mutable" Version="0.9.5" />
<PackageReference Include="LeXtudio.Metadata.Mutable" />
paket add LeXtudio.Metadata.Mutable --version 0.9.5
#r "nuget: LeXtudio.Metadata.Mutable, 0.9.5"
#:package LeXtudio.Metadata.Mutable@0.9.5
#addin nuget:?package=LeXtudio.Metadata.Mutable&version=0.9.5
#tool nuget:?package=LeXtudio.Metadata.Mutable&version=0.9.5
AssemblyTools
LeXtudio.Metadata.Mutable — a small, reusable library for reading, mutating, and writing .NET assembly metadata and IL. This project consolidates mutable metadata/IL model code so tools like Obfuscar and other consumers can reuse a single, well-tested implementation.
Overview
- Purpose: Provide a mutable object model for metadata and method bodies plus
reader/writer implementations built on
System.Reflection.Metadata. - Primary project:
src/LeXtudio.Metadata.Mutable. - Supported TFMs:
net8.0(primary) andnet462(legacy compatibility).
Key features
- Mutable metadata and IL model (types, methods, fields, instructions).
MutableAssemblyReader/MutableAssemblyWriterfor PE/metadata read/write.- Designed for reuse across multiple tooling projects; lightweight compatibility
shims are provided in
Support. - Tests demonstrating round-trip behavior are included.
Getting started
Add the NuGet package from nuget.org (preferred):
dotnet add <your-project>.csproj package LeXtudio.Metadata.Mutable
If you need to test locally before publishing, pack the library and add the local folder as a package source:
dotnet pack src/LeXtudio.Metadata.Mutable/LeXtudio.Metadata.Mutable.csproj -c Release
dotnet nuget add source "src\LeXtudio.Metadata.Mutable\bin\Release" -n local-pkgs
dotnet add <your-project>.csproj package LeXtudio.Metadata.Mutable --source local-pkgs
Build the library (example, net8.0):
dotnet build src/LeXtudio.Metadata.Mutable/LeXtudio.Metadata.Mutable.csproj -f net8.0
Run the tests:
dotnet test tests/LeXtudio.Metadata.Mutable.Tests/LeXtudio.Metadata.Mutable.Tests.csproj
Usage
- Reference the
LeXtudio.Metadata.Mutablepackage. Use the public API surface under theLeXtudio.Metadata.Mutablenamespace — for example the reader/writer classes (MutableAssemblyReader,MutableAssemblyWriter),MutableTypeSystem, andPersistedAssemblyBuilder. - Concrete usage examples are available in the test projects; see:
Documentation
Design notes and rationale: docs/design.md
Supported Target Frameworks
net8.0(primary)net462(legacy compatibility)
Note: Some tests exercise net9.0 features and are located under the
tests folder.
Contributing
- Fork, implement changes in a feature branch, and open a pull request.
- Run the relevant tests locally (
dotnet test ...) and include tests for new behavior. - Keep changes focused and add documentation when you change public APIs.
License
This repository is licensed under the MIT License — see LICENSE.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Framework | net462 is compatible. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
-
.NETFramework 4.6.2
- No dependencies.
-
net8.0
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.0)
- System.Reflection.Metadata (>= 7.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.