title: msvcr110.dll is missing although Visual C++ Redistributable package is installed?
body: <p>I have a .NET application installed on the machine of a client which uses Tesseract.NET. He gets the following behavior:</p>
  
  <p>At startup, these message boxes appear a couple of times:</p>
  
  <p><img src="https://i.stack.imgur.com/tKejU.png" alt="msvcrmissingmsg"></p>
  
  <p><img src="https://i.stack.imgur.com/LD2Q7.png" alt="libleptmissing"></p>
  
  <p>My error log shows:</p>
  
  <blockquote>
    <p>A first chance exception of type 'System.TypeInitializationException'
    occurred in Skillconomy.Buddy.exe</p>
    
    <p>Additional information: The type initializer for 'xyz' threw an
    exception. 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. A first chance exception of type
    'System.DllNotFoundException' occurred in Tesseract.dll</p>
  </blockquote>
  
  <p>I know that msvcr110.dll is the Visual C++ Redistributable for Visual Studio 2012 which can be installed using a package: <a href="http://www.microsoft.com/en-us/download/confirmation.aspx?id=30679" rel="nofollow noreferrer">MSDN</a>. 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.</p>
  
  <p>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:</p>
  
  <p><img src="https://i.stack.imgur.com/PcPDU.png" alt="msvcr"></p>
  
  <p>No effect, everything still working fine on my machine.</p>
  
  <p>I have then removed the following files:</p>
  
  <ul>
  <li>C:/Windows/System32/msvcr110.dll</li>
  <li>C:/Windows/SysWOW64/msvcr110.dll</li>
  </ul>
  
  <p><strong>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.</strong></p>
  
  <p>So now, after reproducing the issue, I obviously want to fix it again:</p>
  
  <p>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.</p>
  
  <p>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.</p>
  
  <p>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:</p>
  
  <p><strong>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?</strong></p>
  
  <p><strong>B. Why is the missing DLL (MSVCR110.DLL) not installed in the OS folders by the installer package?</strong></p>
  
  <p><strong>C. Should MSVCR110.DLL exist in the OS folders anyway and what could be reasons it obviously doesn't on my client's machine?</strong></p>
  
  <p><strong>D. How can I provide a fix, that doesn't involve manual copying of DLLs?</strong></p>
  
  <p>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!</p>