lucasg/Dependencies · warning
peview.exe file could not be found !
Error message
peview.exe file could not be found !
What it means
This is a WPF MessageBox dialog (not a thrown exception) shown by DisplayModuleInfo.OpenPeviewer. Dependencies launches the external peview.exe (from Process Hacker) to inspect a PE module; its on-disk location is read from the PeViewerPath user setting. When File.Exists(programPath) is false, the user is told the binary is missing and the method returns false without launching anything.
Solutions
- Open Dependencies Settings and set PeViewerPath to the real peview.exe location (or use the file picker), then restart.
- Re-run Deploy-Dependencies.ps1 / Get-DependenciesDeps so peview.exe is downloaded and PEVIEW_PATH is populated.
- Verify the binary is actually on disk at the configured path (File.Exists) and that the path is absolute.
- If the deploy hash check failed, update $PeviewBuildHash in Deploy-Dependencies.ps1 to the current Process Hacker artifact hash.
Example fix
// before
string programPath = Dependencies.Properties.Settings.Default.PeViewerPath;
if (!File.Exists(programPath))
{
MessageBox.Show("peview.exe file could not be found !");
return false;
}
// after - let the user locate it and persist the choice
string programPath = Dependencies.Properties.Settings.Default.PeViewerPath;
if (string.IsNullOrWhiteSpace(programPath) || !File.Exists(programPath))
{
var dlg = new Microsoft.Win32.OpenFileDialog { Filter = "peview.exe|peview.exe" };
if (dlg.ShowDialog() != true) return false;
programPath = dlg.FileName;
Dependencies.Properties.Settings.Default.PeViewerPath = programPath;
Dependencies.Properties.Settings.Default.Save();
} Defensive patterns
Strategy: validation
Validate before calling
string programPath = Dependencies.Properties.Settings.Default.PeViewerPath;
if (string.IsNullOrWhiteSpace(programPath) || !File.Exists(programPath))
{
// do not call OpenPeviewer / prompt the user to set PeViewerPath first
return;
} Prevention
- Run the deploy/download step so peview.exe is bundled next to Dependencies.exe.
- Persist PeViewerPath as an absolute path in Settings and validate it on startup.
- Expose a Settings file picker so users can repair a broken path without editing config by hand.
When it happens
Trigger: Calling OpenPeviewer (e.g. the 'open in peview' context command / double-clicking a module in the tree) while Dependencies.Properties.Settings.Default.PeViewerPath is empty, unset, or points to a path that no longer exists on disk.
Common situations: Portable/fresh install where the Deploy-Dependencies.ps1 step never downloaded peview.exe; the pinned download hash in the deploy script drifted so extraction was skipped; the user moved or deleted the binary; PeViewerPath still holds a stale default after an upgrade.
Related errors
- file could not be found !
- The binary caching preference has been modified, you need…
- is not present on the disk
- Can only convert an instance of enum.
- Can only convert to string.
AI-assisted analysis of lucasg/Dependencies@1997a40000 (2026-08-13).
Data as JSON: /api/errors/53bcf64d916bc1e2.
Report an issue: GitHub.
Appendix: source
Thrown at DependenciesGui/Models/ModuleInfo.cs:405
}
return _OpenPeviewerCommand;
}
}
public bool OpenPeviewer(object Module)
{
string programPath = Dependencies.Properties.Settings.Default.PeViewerPath;
Process PeviewerProcess = new Process();
if ((Module == null))
{
return false;
}
if (!File.Exists(programPath))
{
MessageBox.Show("peview.exe file could not be found !");
return false;
}
string Filepath = (Module as DisplayModuleInfo).GetPathDisplayName(true);
if (Filepath == null)
{
return false;
}
PeviewerProcess.StartInfo.FileName = programPath;
PeviewerProcess.StartInfo.Arguments = Filepath;
return PeviewerProcess.Start();
}
public RelayCommand OpenNewAppCommand
{
get
{View on GitHub (pinned to 1997a40000)