lucasg/Dependencies · info
This binary use the App-V containerization technology which
Error message
This binary use the App-V containerization technology which fiddle with search directories and PATH env in ways Dependencies can't handle. Following results are probably not quite exact.
What it means
Shown once per DependencyWindow by TriggerWarningOnAppvIsvImports (DependenciesGui/DependencyWindow.xaml.cs:682) when an analysed module imports AppvIsvSubsystems32.dll or AppvIsvSubsystems64.dll (case-insensitive). These indicate a Microsoft App-V virtualised application; App-V rewrites DLL search order and PATH in ways Dependencies cannot replicate, so the displayed dependency tree may be inaccurate. The _DisplayWarning flag suppresses repeat popups.
Source
Thrown at DependenciesGui/DependencyWindow.xaml.cs:682
ImportModule.ApiSetModuleName = BinaryCache.LookupApiSetLibrary(DllImport.Name);
if (DllImport.Name.StartsWith("ext-"))
{
ImportModule.Flags |= ModuleFlag.ApiSetExt;
}
}
return ImportModule;
}
private void TriggerWarningOnAppvIsvImports(string DllImportName)
{
if (String.Compare(DllImportName, "AppvIsvSubsystems32.dll", StringComparison.OrdinalIgnoreCase) == 0 ||
String.Compare(DllImportName, "AppvIsvSubsystems64.dll", StringComparison.OrdinalIgnoreCase) == 0)
{
if (!this._DisplayWarning)
{
MessageBoxResult result = MessageBox.Show(
"This binary use the App-V containerization technology which fiddle with search directories and PATH env in ways Dependencies can't handle.\n\nFollowing results are probably not quite exact.",
"App-V ISV disclaimer"
);
this._DisplayWarning = true; // prevent the same warning window to popup several times
}
}
}
private void ProcessAppInitDlls(Dictionary<string, ImportContext> NewTreeContexts, PE AnalyzedPe, ImportContext ImportModule)
{
List<PeImportDll> PeImports = AnalyzedPe.GetImports();
// only user32 triggers appinit dlls
string User32Filepath = Path.Combine(FindPe.GetSystemPath(this.Pe), "user32.dll");
if (ImportModule.PeFilePath != User32Filepath)
{View on GitHub (pinned to 1997a40000)
Solutions
- Treat the reported imports/exports as advisory, not authoritative, for App-V binaries.
- For ground truth, analyse the real (de-virtualised) binary inside the App-V package mount point rather than the launcher.
- Dismiss the dialog (it only appears once per window) and proceed with the caveat in mind.
Defensive patterns
Strategy: fallback
Validate before calling
// Detect App-V early and warn the user / branch behaviour.
bool isAppV = imports.Any(i =>
string.Equals(i.Name, "AppvIsvSubsystems32.dll", StringComparison.OrdinalIgnoreCase) ||
string.Equals(i.Name, "AppvIsvSubsystems64.dll", StringComparison.OrdinalIgnoreCase));
if (isAppV) { /* mark results non-authoritative */ } Prevention
- Recognise that App-V binaries cannot be resolved accurately by Dependencies - prefer analysing the de-virtualised payload.
- Document this limitation for end users so the disclaimer is expected, not surprising.
When it happens
Trigger: Analysing an App-V sequenced/virtualised executable whose import table references AppvIsvSubsystems32/64.dll.
Common situations: Inspecting an App-V package's executable; analysing a shortcut to a virtualised app; sequencing output from the App-V Sequencer.
Related errors
- Loading PE file "{0:s}" failed : file not present on disk.
- Loading module {0:s} failed.
- Can only convert to string.
- Can only convert an instance of enum.
- {0:s} file could not be found !
AI-assisted analysis of lucasg/Dependencies@1997a40000 (2026-08-13).
Data as JSON: /api/errors/aa5cda5665870a17.
Report an issue: GitHub.