使用CLI库时装配加载失败

时间:2012-11-25 11:09:55

标签: c++ c++-cli

由于某种原因,我无法启动我的6​​4位应用程序。我收到一个错误:

14:17:41:587 Error: The type initializer for 'Va.MBClient.Program' threw an
 exception.

Unhandled Exception: System.TypeInitializationException: The type initializer fo
r 'Va.MBClient.Program' threw an exception. ---> System.IO.FileNotFoundExce
ption: Could not load file or assembly 'CGateCliAdapter.dll' or one of its depen
dencies. The specified module could not be found.
   at Va.MBClient.Program..cctor()
   --- End of inner exception stack trace ---
   at Va.MBClient.Program.Main(String[] args) in c:\Oleg\projects\Va.M
BClient\Va.MBClient\Program.cs:line 87

不知怎的,这与我的CLI DLL文件有关,因为当我取消引用CLI库的行private static CGateCliAdapterMain cliAdapter = new CGateCliAdapterMain();时,我可以启动该应用程序。

我在Visual Studio中看到了这一点:

Microsoft.VisualStudio.HostingProcess.Utilities.dll!Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
mscorlib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx)
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx)
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state)
mscorlib.dll!System.Threading.ThreadHelper.ThreadStart()
[Native to Managed Transition]

我尝试使用fuslogvw来捕获绑定失败,但由于某种原因它无法捕获它!所以现在我不知道如何解决这个问题。

我使用了Dependency Walker并发现以下文件丢失了:

MSVCR110.DLL
GPSVC.DLL
IESHIMS.DLL
MF.DLL
MFPLAT.DLL
MFREADWRITE.DLL
WLANAPI.DLL

我尝试将wlanapi.dll直接复制到一个带有应用程序的文件夹,这有助于(DLL文件从丢失的列表中消失),但为什么在我安装时DLL文件不可见Visual C ++ Redistributable for Visual Studio 2012 ?我试图重新安装并修复安装。

另外,我找不到DLL文件MSVCR110.DLLMSVCP110.DLL

我不知道为什么。我曾多次尝试为Visual Studio 2012重新安装Visual C ++ Redistributable。


更新

现在我再次因某些原因无法运行我的程序!一天后,Dependency Walker再次声称DLL文件丢失。但是,我确实有“Visual C ++ Redistributable for Visual Studio 2012”。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。需要安装Visual C++ Redistributable for Visual Studio 2012