简体   繁体   English

尽管安装了Visual C ++可再发行组件包,但缺少msvcr110.dll吗?

[英]msvcr110.dll is missing although Visual C++ Redistributable package is installed?

I have a .NET application installed on the machine of a client which uses Tesseract.NET. 我在使用Tesseract.NET的客户端计算机上安装了.NET应用程序。 He gets the following behavior: 他得到以下行为:

At startup, these message boxes appear a couple of times: 在启动时,这些消息框会出现几次:

msvcrmissingmsg

libleptmissing

My error log shows: 我的错误日志显示:

A first chance exception of type 'System.TypeInitializationException' occurred in Skillconomy.Buddy.exe 类型'System.TypeInitializationException'的第一次机会异常发生在Skillconomy.Buddy.exe中

Additional information: The type initializer for 'xyz' threw an exception. 附加信息:“ xyz”的类型初始值设定项引发了异常。 A first chance exception of type 'Tesseract.LoadLibraryException' occurred in Tesseract.dll MyProgram.vshost.exe Error: 0 : Failed to find dll "libtesseract302", for processor architecture x86. Tesseract.dll MyProgram.vshost.exe中发生类型'Tesseract.LoadLibraryException'的第一次机会异常错误:0:无法找到用于处理器体系结构x86的dll“ libtesseract302”。 A first chance exception of type 'System.DllNotFoundException' occurred in Tesseract.dll Tesseract.dll中发生类型'System.DllNotFoundException'的第一次机会异常

I know that msvcr110.dll is the Visual C++ Redistributable for Visual Studio 2012 which can be installed using a package: MSDN . 我知道msvcr110.dll是Visual Studio 2012的Visual C ++可再发行组件,可以使用软件包MSDN进行安装。 That is why I asked my customer to install the package prior to installing my software. 这就是为什么我要求客户在安装软件之前先安装软件包。 I cannot be entirely sure though, that he did. 不过,我不能完全确定他做到了。

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: 首先,我卸载了在开发机器上安装的所有VC ++ Runtime Redistributable Packages:

msvcr

No effect, everything still working fine on my machine. 没效果,我的机器上一切仍然正常。

I have then removed the following files: 然后,我删除了以下文件:

  • C:/Windows/System32/msvcr110.dll C:/Windows/System32/msvcr110.dll
  • C:/Windows/SysWOW64/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. 请注意,尽管我还没有添加或移动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. 我重新安装了Visual Studio 2012的Microsoft Visual C ++ Runtime Redistributables,并重新启动了计算机,但问题未解决,之前未删除的DLL(请参见上文)尚未重新安装,并且启动程序时仍然存在问题。

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. 手动将我之前删除的DLL复制回OS目录可以解决此问题,但是不能要求客户端手动将DLL拖放到OS系统文件夹中,这似乎不是一个干净的解决方案。

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. 我期望解决此问题的方式-安装Visual C ++ Redistributable-没有效果,因为它没有在我需要的位置安装所需的DLL。 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? 答:尽管显然缺少DLL(MSVCR110.DLL)是可再发行软件包的全部目的,但为什么Visual C ++可再发行与错误之间没有任何关系?

B. Why is the missing DLL (MSVCR110.DLL) not installed in the OS folders by the installer package? B.为什么安装程序包没有在OS文件夹中安装缺少的DLL(MSVCR110.DLL)?

C. Should MSVCR110.DLL exist in the OS folders anyway and what could be reasons it obviously doesn't on my client's machine? C. MSVCR110.DLL是否仍应存在于OS文件夹中,这又可能是它显然不在客户端计算机上的原因?

D. How can I provide a fix, that doesn't involve manual copying of DLLs? D.如何提供不涉及手动复制DLL的修复程序?

I would be very happy about answers to any of these questions or ideas on how to proceed with the issue. 对于这些问题的任何答案或关于如何进行此问题的想法,我将感到非常高兴。 Thank you so much in advance! 提前非常感谢您!

Solution: Needed to install the x86 as well. 解决方案:还需要安装x86。 (my system was x64 so i didn't think I had to). (我的系统是x64,所以我不认为必须这样做)。

I know this is a old post but it helped me today. 我知道这是一篇旧文章,但今天对我有帮助。 I can confirm that in a clean Windows Pro 10 install (x64) installing literally all of the VCREDIST (x86 and x64) fixed the problem. 我可以确认,在干净的Windows Pro 10安装(x64)中,按字面意义安装了所有VCREDIST (x86和x64)都可以解决此问题。

在VS 2015中运行Windows应用程序时遇到相同的问题,其中我使用的是VS 2012中内置的第三方dll。当我在VS 2015中构建第三方dll并在我的应用程序中使用时,它解决了我的问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 验证是否安装了Visual C ++ 2008 SP1可再发行组件包? - Verify if Visual C++ 2008 SP1 Redistributable Package is Installed? 验证是否安装了Visual C ++ 2008 SP1可再发行组件包,而不在Windows注册表中进行搜索? - Verify if Visual C++ 2008 SP1 Redistributable Package is Installed without searching in windows registry? Visual Studio 2015 的 C# 和 C++ Redistributable 缺少依赖项 - Missing dependencies with C# and C++ Redistributable for Visual Studio 2015 如何检查设备上是否安装了 Microsoft Visual C++ 2015 Redistributable - How to Check if Microsoft Visual C++ 2015 Redistributable Installed on a Device C#缺少MSVCR100.dll - C# Missing MSVCR100.dll 为什么要安装Microsoft Visual C ++ 2010 Redistributable Package x86来使用SQLite? - Why install Microsoft Visual C++ 2010 Redistributable Package x86 to use SQLite? 除非安装了visual studio,否则无法使用C ++ / CLI DLL - Cannot use a C++/CLI DLL unless visual studio is installed 构建一个无需 C++ Redistributable Package 即可运行的 .exe - Build an .exe that runs without C++ Redistributable Package 未正确检测到Visual C ++ Redistributable 2012检查 - Visual C++ Redistributable 2012 check is not being detected correctly Microsoft Visual C ++ 2010 SP1可在Azure上重新分发吗? - Microsoft Visual C++ 2010 SP1 Redistributable on Azure?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM