尽管安装了 Visual C++ Redistributable 软件包,但仍缺少 msvcr110.dll?

Mar*_*arc 3 c# c++ dll

我在使用 Tesseract.NET 的客户端计算机上安装了一个 .NET 应用程序。他得到以下行为:

启动时,这些消息框会出现几次:

msvcrmissing消息

libptmissing

我的错误日志显示:

Skillconomy.Buddy.exe 中发生了“System.TypeInitializationException”类型的第一次机会异常

附加信息:“xyz”的类型初始值设定项引发异常。Tesseract.dll MyProgram.vshost.exe 中第一次出现“Tesseract.LoadLibraryException”类型异常错误:0:无法找到 dll“libtesseract302”,适用于处理器架构 x86。Tesseract.dll 中发生“System.DllNotFoundException”类型的第一次机会异常

我知道 msvcr110.dll 是 Visual Studio 2012 的 Visual C++ Redistributable,可以使用包安装:MSDN。这就是为什么我要求客户在安装我的软件之前安装该软件包。但我不能完全确定他确实做到了。

I have tried to reproduce the issue my customer describes on my own machine. First, I uninstalled all VC++ Runtime Redistributable Packages that I had installed on my development machine:

录像机

No effect, everything still working fine on my machine.

I have then removed the following files:

  • C:/Windows/System32/msvcr110.dll
  • C:/Windows/SysWOW64/msvcr110.dll

The issue is reproduced, I get exactly the same behavior as described by my customer. Note, that the second error message box is also not showing anymore, although I have not added or moved the DLL liblept168.dll.

So now, after reproducing the issue, I obviously want to fix it again:

I reinstalled the Microsoft Visual C++ Runtime Redistributables for Visual Studio 2012 an restarted my machine, but the issue is not fixed, the DLLs which I have deleted before (see above) have not been reinstalled and the issue when starting the program remains.

Manually copying the DLLs which I have deleted before back to the OS directories fixes the issue, but it is not an option to ask the client to manually drag and drop DLLs to OS system folders and it does not seem to be a clean solution anyways.

The way which I have expected to fix the issue - installing the Visual C++ Redistributable - does not have an effect, as it doesn't install the required DLLs in the place I need them. Also, uninstalling the packages on my system did not reproduce the bug, so there seems to be no actual relation between the bug and the package (which is the first thing I don't understand). Secondly, I don't know how to provide a proper fix. So my questions are:

A. Why is there no relation between the Visual C++ redistributables and the bugs, although obviously the missing DLL (MSVCR110.DLL) is what the redistributable package is all about?

B. Why is the missing DLL (MSVCR110.DLL) not installed in the OS folders by the installer package?

C. MSVCR110.DLL 是否应该存在于操作系统文件夹中?它明显不存在于我的客户端计算机上的原因可能是什么?

D. 如何提供不涉及手动复制 DLL 的修复?

我很高兴能得到这些问题的答案或关于如何处理该问题的想法。提前非常感谢!

小智 6

解决方案:还需要安装x86。(我的系统是 x64,所以我认为我不必这样做)。