DLL dependency issue on Windows 7 Pro and Windows 8.1 Pro


#1

I tried installing Monolith on both a Windows 7 Pro and a Windows 8.1 Pro and neither of them can find needed dependencies. In both cases, I installed the Microsoft Visual C++ 2015 Redistributable 14.0.23026 library(first the x64 version, then the x86 version out of paranoia, but that didn’t solve it either, so I removed the x86 version).

When I run Monolith from the command line, I get this:

Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly ‘MalachiteNet.dll’ or one of its dependencies. The specified module could not be found.
at TheMonolith.App.Application_Startup(Object sender, StartupEventArgs e)
at System.Windows.Application.OnStartup(StartupEventArgs e)
at System.Windows.Application.<.ctor>b__1_0(Object unused)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.DispatcherOperation.InvokeImpl()
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
at System.Windows.Threading.DispatcherOperation.Invoke()
at System.Windows.Threading.Dispatcher.ProcessQueue()
at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
at System.Windows.Application.RunDispatcher(Object ignore)
at System.Windows.Application.RunInternal(Window window)
at TheMonolith.App.Main()

I’ve been working on debugging this for a couple days now and found this program to help find the missing dependencies:
Dependency Walker 2.2: http://www.dependencywalker.com/
It is pretty amazing. I loaded the Monolith.exe file into it, and then hit F7 to start profiling it.

Have you ever considered releasing a statically-linked binary executable? That would probably solve 99% of the installation problems… I see that this is a common issue on the forums, but none of the solutions I read solved the problem for me. (Also, I really look forward to Linux, Mac, and Android versions of Monolith!)

Here is the output in the hopes that you can tell me what DLLs I’m missing:
(I’ve only included the RED error lines)

GetProcAddress(0x00000000771E0000 [KERNEL32.DLL], “GetCurrentPackageId”) called from “MSCOREEI.DLL” at address 0x000007FEF1C79307 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000771E0000 [KERNEL32.DLL], “GetFileInformationByHandleExW”) called from “MSCOREEI.DLL” at address 0x000007FEF1C79343 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000771E0000 [KERNEL32.DLL], “SetFileInformationByHandleW”) called from “MSCOREEI.DLL” at address 0x000007FEF1C79361 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x000007FEF1C70000 [MSCOREEI.DLL], “RegisterShimImplCleanupCallback”) called from “MSCOREE.DLL” at address 0x000007FEF2327069 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x000007FEF1C70000 [MSCOREEI.DLL], “SetShellShimInstance”) called from “MSCOREE.DLL” at address 0x000007FEF232CB95 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x000007FEF1C70000 [MSCOREEI.DLL], “_CorExeMain_RetAddr”) called from “MSCOREE.DLL” at address 0x000007FEF232D2F3 and returned NULL. Error: The specified procedure could not be found (127).
LoadLibraryExW(“C:\Windows\Microsoft.NET\Framework64\v4.0\clr.dll”, 0x0000000000000000, LOAD_LIBRARY_AS_DATAFILE | 0x00000020) returned NULL. Error: The system cannot find the file specified (2).
GetProcAddress(0x00000000771E0000 [KERNEL32.DLL], “GetCurrentPackageId”) called from “MSVCR120_CLR0400.DLL” at address 0x000007FEF1252C4C and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000771E0000 [KERNEL32.DLL], “GetFileInformationByHandleExW”) called from “MSVCR120_CLR0400.DLL” at address 0x000007FEF1252C88 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000771E0000 [KERNEL32.DLL], “SetFileInformationByHandleW”) called from “MSVCR120_CLR0400.DLL” at address 0x000007FEF1252CA6 and returned NULL. Error: The specified procedure could not be found (127).
LoadLibraryExW(“api-ms-win-core-quirks-l1-1-0.dll”, 0x0000000000000000, 0x00000800) returned NULL. Error: The specified module could not be found (126).
LoadLibraryExW(“C:\Windows\Microsoft.NET\Framework64\v4.0.30319\mscoree.dll”, 0x0000000000000000, LOAD_WITH_ALTERED_SEARCH_PATH) returned NULL. Error: The specified module could not be found (126).
GetProcAddress(0x000007FEF1C70000 [MSCOREEI.DLL], “CreateConfigStream_RetAddr”) called from “MSCOREE.DLL” at address 0x000007FEF232CF0D and returned NULL. Error: The specified procedure could not be found (127).
LoadLibraryExW(“C:\Windows\system32\combase.dll”, 0x0000000000000000, 0x00000000) returned NULL. Error: The specified module could not be found (126).
LoadLibraryExW(“C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ole32.dll”, 0x0000000000000000, LOAD_WITH_ALTERED_SEARCH_PATH) returned NULL. Error: The specified module could not be found (126).
LoadLibraryExW(“C:\Windows\Microsoft.Net\assembly\GAC_64\PresentationCore\v4.0_4.0.0.0__31bf3856ad364e35\MSVCR120_CLR0400.dll”, 0x0000000000000000, 0x00001000) returned NULL. Error: The specified module could not be found (126).
LoadLibraryExW(“C:\Windows\Microsoft.Net\assembly\GAC_64\PresentationCore\v4.0_4.0.0.0__31bf3856ad364e35\SHLWAPI.dll”, 0x0000000000000000, 0x00001000) returned NULL. Error: The specified module could not be found (126).
GetProcAddress(0x000007FEFEE50000 [ADVAPI32.DLL], “RegOpenKeyEx”) called from “CLR.DLL” at address 0x000007FEF1430E00 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000771E0000 [KERNEL32.DLL], “GetFullPathName”) called from “CLR.DLL” at address 0x000007FEF1430E00 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000771E0000 [KERNEL32.DLL], “GetCurrentProcessW”) called from “CLR.DLL” at address 0x000007FEF1338B49 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x000007FEFEE50000 [ADVAPI32.DLL], “OpenProcessTokenW”) called from “CLR.DLL” at address 0x000007FEF1338B49 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000771E0000 [KERNEL32.DLL], “GetFileAttributesEx”) called from “CLR.DLL” at address 0x000007FEF1430E00 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000771E0000 [KERNEL32.DLL], “CreateFile”) called from “CLR.DLL” at address 0x000007FEF1430E00 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000770E0000 [USER32.DLL], “RegisterWindowMessage”) called from “CLR.DLL” at address 0x000007FEF1430E00 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000771E0000 [KERNEL32.DLL], “GetModuleHandle”) called from “CLR.DLL” at address 0x000007FEF1430E00 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x000007FEFF3C0000 [GDI32.DLL], “GetStockObjectW”) called from “CLR.DLL” at address 0x000007FEF1338B49 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000770E0000 [USER32.DLL], “RegisterClassEx”) called from “CLR.DLL” at address 0x000007FEF1430E00 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x000007FEF1C70000 [MSCOREEI.DLL], “GetProcessExecutableHeap_RetAddr”) called from “MSCOREE.DLL” at address 0x000007FEF232CF6B and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000770E0000 [USER32.DLL], “CreateWindowEx”) called from “CLR.DLL” at address 0x000007FEF1430E00 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000771E0000 [KERNEL32.DLL], “GetEnvironmentVariable”) called from “CLR.DLL” at address 0x000007FEF1430E00 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x000007FEFEE50000 [ADVAPI32.DLL], “RegQueryValueEx”) called from “CLR.DLL” at address 0x000007FEF1430E00 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x000007FEFEE50000 [ADVAPI32.DLL], “RegQueryValueEx”) called from “CLR.DLL” at address 0x000007FEF1430E00 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000771E0000 [KERNEL32.DLL], “LoadLibrary”) called from “CLR.DLL” at address 0x000007FEF1430E00 and returned NULL. Error: The specified procedure could not be found (127).
LoadLibraryExW(“C:\Windows\Microsoft.Net\assembly\GAC_MSIL\WindowsBase\v4.0_4.0.0.0__31bf3856ad364e35\PresentationNative_v0400.dll”, 0x0000000000000000, 0x00001000) returned NULL. Error: The specified module could not be found (126).
GetProcAddress(0x000007FEDDE40000 [PRESENTATIONNATIVE_V0400.DLL], “SetWindowLongPtrWrapperW”) called from “CLR.DLL” at address 0x000007FEF1338B49 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000770E0000 [USER32.DLL], “CallWindowProc”) called from “CLR.DLL” at address 0x000007FEF1430E00 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000770E0000 [USER32.DLL], “PostMessage”) called from “CLR.DLL” at address 0x000007FEF1430E00 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000771E0000 [KERNEL32.DLL], “GetFileAttributesEx”) called from “CLR.DLL” at address 0x000007FEF1430E00 and returned NULL. Error: The specified procedure could not be found (127).
LoadLibraryExW(“C:\Windows\Microsoft.NET\Framework64\v4.0.30319\en-US\mscorrc.dll”, 0x0000000000000000, LOAD_LIBRARY_AS_DATAFILE) returned NULL. Error: The system cannot find the file specified (2).
LoadLibraryExW(“C:\Windows\Microsoft.NET\Framework64\v4.0.30319\en\mscorrc.dll”, 0x0000000000000000, LOAD_LIBRARY_AS_DATAFILE) returned NULL. Error: The system cannot find the file specified (2).
GetProcAddress(0x00000000770E0000 [USER32.DLL], “SystemParametersInfo”) called from “CLR.DLL” at address 0x000007FEF1430E00 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000770E0000 [USER32.DLL], “SystemParametersInfo”) called from “CLR.DLL” at address 0x000007FEF1430E00 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000770E0000 [USER32.DLL], “SystemParametersInfo”) called from “CLR.DLL” at address 0x000007FEF1430E00 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000770E0000 [USER32.DLL], “GetSysColorW”) called from “CLR.DLL” at address 0x000007FEF1338B49 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000770E0000 [USER32.DLL], “SystemParametersInfo”) called from “CLR.DLL” at address 0x000007FEF1430E00 and returned NULL. Error: The specified procedure could not be found (127).
LoadLibraryExW(“C:\Windows\Microsoft.Net\assembly\GAC_MSIL\WindowsBase\v4.0_4.0.0.0__31bf3856ad364e35\uxtheme.dll”, 0x0000000000000000, 0x00001000) returned NULL. Error: The specified module could not be found (126).
GetProcAddress(0x000007FEFBA90000 [UXTHEME.DLL], “IsThemeActiveW”) called from “CLR.DLL” at address 0x000007FEF1338B49 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x000007FEFBA90000 [UXTHEME.DLL], “GetCurrentThemeNameW”) called from “CLR.DLL” at address 0x000007FEF1338B49 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000770E0000 [USER32.DLL], “DispatchMessage”) called from “CLR.DLL” at address 0x000007FEF1430E00 and returned NULL. Error: The specified procedure could not be found (127).
LoadLibraryExW(“C:\Program Files\Monolith\MalachiteNet.dll”, 0x0000000000000000, LOAD_WITH_ALTERED_SEARCH_PATH) returned NULL. Error: The specified module could not be found (126).
LoadLibraryExW(“C:\Windows\Microsoft.NET\Framework64\v4.0.30319\VERSION.dll”, 0x0000000000000000, LOAD_WITH_ALTERED_SEARCH_PATH) returned NULL. Error: The specified module could not be found (126).
Second chance exception 0xE0434352 (Unknown) occurred in “KERNELBASE.DLL” at address 0x000007FEFD33A06D.
Exited “MONOLITH.EXE” (process 0x18E8) with code -532462766 (0xE0434352).

I also tried running this tool: https://www.microsoft.com/en-us/download/details.aspx?id=30135
but it didn’t help solve the problem.

I’ll keep working on this… I really want to try out Monolith.

Thanks!
– Glenn


#2

Issue SOLVED!!!

The same Dependency Walker 2.2 program showed me that “msvcp110.dll” was missing. A Google search led me to:
https://www.microsoft.com/en-us/download/details.aspx?id=30679
Once I installed “Visual C++ Redistributable for Visual Studio 2012 Update 4”, Monolith started working.

Wheh, that was a royal pain and two days worth of digging.

I highly recommend shipping a statically-linked executable for any platform you release for.

Thanks.
– Glenn