Minicon.CodeExtractor 0.1.0

dotnet tool install --global Minicon.CodeExtractor --version 0.1.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local Minicon.CodeExtractor --version 0.1.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Minicon.CodeExtractor&version=0.1.0
                    
nuke :add-package Minicon.CodeExtractor --version 0.1.0
                    

Minicon.CodeExtractor

dotnet-Tool, das ein NuGet-Paket vollständig dekompiliert und daraus ein komplettes C#-Projekt erzeugt: Quellcode, SDK-style csproj, eingebettete Ressourcen und PackageReference-Einträge für die direkten Abhängigkeiten des Pakets. Basiert auf der ILSpy-Engine (ICSharpCode.Decompiler).

Installation

dotnet tool install --global Minicon.CodeExtractor

Oder ohne Installation direkt ausführen (ab .NET 10):

dnx Minicon.CodeExtractor -- Newtonsoft.Json

Lokal aus dem Repository:

dotnet pack
dotnet tool install --global --add-source ./artifacts Minicon.CodeExtractor

Verwendung

minicon-extract <paket-id>          # Paket von nuget.org laden und dekompilieren
minicon-extract <pfad.nupkg>        # Lokales Paket dekompilieren
minicon-extract <pfad.dll>          # Einzelne Assembly dekompilieren
Option Beschreibung
-v, --version <version> Paketversion oder Versionsbereich (Standard: neueste stabile)
-o, --output <dir> Ausgabeverzeichnis (Standard: ./<PaketId>)
-f, --framework <tfm> Ziel-Framework für die Asset-Auswahl (Standard: net10.0)
-s, --source <url> NuGet-Feed (Standard: api.nuget.org)
--include-prerelease Auch Prerelease-Versionen berücksichtigen
--no-package-refs Referenzen nicht in PackageReference umschreiben

Beispiele

minicon-extract Newtonsoft.Json
minicon-extract Microsoft.Extensions.Logging -v 9.0.0 -o ./extracted
minicon-extract Minicon.SevDesk.Client --include-prerelease

Was das Tool macht

  1. Lädt das Paket (inkl. transitiver Abhängigkeiten) vom Feed.
  2. Wählt die zum Ziel-Framework passende lib/<tfm>-Gruppe.
  3. Dekompiliert alle Assemblies mit ILSpys WholeProjectDecompiler in ein vollständiges Projekt (Namespaces als Ordner, Ressourcen inklusive).
  4. Bereinigt das erzeugte csproj: BCL-Referenzen mit maschinenspezifischen HintPaths raus, PackageReference-Einträge für die direkten Abhängigkeiten rein – das Projekt ist damit per dotnet restore wiederherstellbar.
  5. Entfernt compiler-reservierte Assembly-Attribute (NullablePublicOnly, RefSafetyRules, …), die sonst CS8335 auslösen würden.

Grenzen

Dekompilierter Code ist nicht immer 1:1 rückübersetzbar. Kleine Pakete bauen in der Regel fehlerfrei; bei großen Bibliotheken können vereinzelt manuelle Korrekturen nötig sein (typisch: mehrdeutige Typnamen zwischen using-Namespaces oder Nullability-Feinheiten bei Generics). Newtonsoft.Json ergibt z. B. 269 Quelldateien mit 5 trivial behebbaren Fehlern.

Rechtlicher Hinweis

Dekompilieren fremder Pakete ist nur im Rahmen der jeweiligen Lizenz zulässig. Das Tool ist für eigene Pakete, Open-Source-Analysen und Debugging gedacht – die Lizenz des dekompilierten Pakets gilt unverändert auch für das Dekompilat.

Lizenz

MIT

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
0.1.0 131 7/2/2026