簡體   English   中英

盡管安裝了Visual C ++可再發行組件包,但缺少msvcr110.dll嗎?

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

我在使用Tesseract.NET的客戶端計算機上安裝了.NET應用程序。 他得到以下行為:

在啟動時,這些消息框會出現幾次:

msvcrmissingmsg

libleptmissing

我的錯誤日志顯示:

類型'System.TypeInitializationException'的第一次機會異常發生在Skillconomy.Buddy.exe中

附加信息:“ xyz”的類型初始值設定項引發了異常。 Tesseract.dll MyProgram.vshost.exe中發生類型'Tesseract.LoadLibraryException'的第一次機會異常錯誤:0:無法找到用於處理器體系結構x86的dll“ libtesseract302”。 Tesseract.dll中發生類型'System.DllNotFoundException'的第一次機會異常

我知道msvcr110.dll是Visual Studio 2012的Visual C ++可再發行組件,可以使用軟件包MSDN進行安裝。 這就是為什么我要求客戶在安裝軟件之前先安裝軟件包。 不過,我不能完全確定他做到了。

我試圖重現客戶在我自己的機器上描述的問題。 首先,我卸載了在開發機器上安裝的所有VC ++ Runtime Redistributable Packages:

msvcr

沒效果,我的機器上一切仍然正常。

然后,我刪除了以下文件:

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

重現了該問題,我得到的行為與客戶描述的完全相同。 請注意,盡管我還沒有添加或移動DLL liblept168.dll,但第二個錯誤消息框也不再顯示。

因此,現在,在重現該問題之后,我顯然想再次解決該問題:

我重新安裝了Visual Studio 2012的Microsoft Visual C ++ Runtime Redistributables,並重新啟動了計算機,但問題未解決,之前未刪除的DLL(請參見上文)尚未重新安裝,並且啟動程序時仍然存在問題。

手動將我之前刪除的DLL復制回OS目錄可以解決此問題,但是不能要求客戶端手動將DLL拖放到OS系統文件夾中,這似乎不是一個干凈的解決方案。

我期望解決此問題的方式-安裝Visual C ++ Redistributable-沒有效果,因為它沒有在我需要的位置安裝所需的DLL。 另外,在我的系統上卸載軟件包並不會重現該錯誤,因此,該錯誤與該軟件包之間似乎沒有實際關系(這是我不了解的第一件事)。 其次,我不知道如何提供適當的修復程序。 所以我的問題是:

答:盡管顯然缺少DLL(MSVCR110.DLL)是可再發行軟件包的全部目的,但為什么Visual C ++可再發行與錯誤之間沒有任何關系?

B.為什么安裝程序包沒有在OS文件夾中安裝缺少的DLL(MSVCR110.DLL)?

C. MSVCR110.DLL是否仍應存在於OS文件夾中,這又可能是它顯然不在客戶端計算機上的原因?

D.如何提供不涉及手動復制DLL的修復程序?

對於這些問題的任何答案或關於如何進行此問題的想法,我將感到非常高興。 提前非常感謝您!

解決方案:還需要安裝x86。 (我的系統是x64,所以我不認為必須這樣做)。

我知道這是一篇舊文章,但今天對我有幫助。 我可以確認,在干凈的Windows Pro 10安裝(x64)中,按字面意義安裝了所有VCREDIST (x86和x64)都可以解決此問題。

在VS 2015中運行Windows應用程序時遇到相同的問題,其中我使用的是VS 2012中內置的第三方dll。當我在VS 2015中構建第三方dll並在我的應用程序中使用時,它解決了我的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM