lucasg/Dependencies · warning
Json output is not currently supported when dumping the…
Error message
Json output is not currently supported when dumping the dependency chain.
What it means
Printed by Program.DumpModules (Program.cs:775) when the requested printer is JsonPrinter. The `-modules` command resolves the whole dependency chain and then hands `PeDependencies.GetModules` (a ModuleEntries dictionary) to the printer; JSON serialization of that graph is intentionally unsupported, so the method writes this notice to stderr and returns without doing anything.
Solutions
- Drop `-json` for the `-modules` command and parse the default human-readable output instead.
- Use `-chain` or `-imports`/`-exports` which do support JSON serialization if machine-readable output is required.
- If JSON module info is essential, modify DumpModules to serialize a projection (e.g. a flat list of {ModuleName, Filepath, SearchStrategy}) rather than the whole PeDependencies graph.
Example fix
// before: combination silently does nothing but print a notice // run: Dependencies.exe -json -modules notepad.exe // after: pick a JSON-supported command // run: Dependencies.exe -json -imports notepad.exe
Defensive patterns
Strategy: validation
Validate before calling
// Validate command/printer compatibility before invoking, mirroring DumpModules' guard.
bool jsonIncompatibleWithModules = export_as_json && command == Program.DumpModules;
if (jsonIncompatibleWithModules)
{
Console.Error.WriteLine("-json is not supported with -modules; choose -imports/-exports/-chain instead.");
return;
} Prevention
- Cross-reference the command set: only -imports, -exports, -chain, -manifest, -sxsentries, -assemblyrefs, -modulerefs, -apisets, -knowndll support JSON; -modules does not.
- When scripting, assert the chosen command is JSON-capable before passing -json.
When it happens
Trigger: Command line `Dependencies.exe -json -modules <FILE>`: GetObjectPrinter(true) returns JsonPrinter, command is wired to DumpModules, and the `Printer == JsonPrinter` guard trips.
Common situations: Users scripting Dependencies for machine consumption combining `-json` with `-modules` expecting JSON output.
Related errors
AI-assisted analysis of lucasg/Dependencies@1997a40000 (2026-08-13).
Data as JSON: /api/errors/682b85330db13d7c.
Report an issue: GitHub.
Appendix: source
Thrown at Dependencies/Program.cs:775
}
public static void DumpModuleReferences(PE Pe, Action<IPrettyPrintable> Printer, int recursion_depth = 0)
{
PEModuleReferences ModuleReferences = new PEModuleReferences(Pe);
Printer(ModuleReferences);
}
public static void DumpDependencyChain(PE Pe, Action<IPrettyPrintable> Printer, int recursion_depth = 0)
{
PeDependencies Deps = new PeDependencies(Pe, recursion_depth);
Printer(Deps);
}
public static void DumpModules(PE Pe, Action<IPrettyPrintable> Printer, int recursion_depth = 0)
{
if (Printer == JsonPrinter)
{
Console.Error.WriteLine("Json output is not currently supported when dumping the dependency chain.");
return;
}
PeDependencies Deps = new PeDependencies(Pe, recursion_depth);
Printer(Deps.GetModules);
}
public static void DumpUsage()
{
string Usage = String.Join(Environment.NewLine,
"Dependencies.exe : command line tool for dumping dependencies and various utilities.",
"",
"Usage : Dependencies.exe [OPTIONS] <FILE>",
"",
"Options :",
" -h -help : display this help",
" -json : activate json output.",
" -cache : load and use binary cache in order to prevent dll file locking.",View on GitHub (pinned to 1997a40000)