I have a problem with Visual C++ 2008. I have installed opencv and I\'ve created a new program and I build it with no errors. However, it complains about not finding MSVCR90
This is one of the reasons that I statically link; bigger EXEs but I have never had a dependency issue like this before. Probably worth a question in itself though...
I have solved same problem like below:
When you do that, your project embeds depended dlls and so it escaped dependency problems.
Note: I worked on a dll project and had that problem. After doing above steps it worked for my situation.
I had the problem:
Could not load file or assembly 'AudioInterface, Version=1.0.3548.29920, Culture=neutral, PublicKeyToken=null' or one of its dependencies. This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem. (Exception from HRESULT: 0x800736B1)
AudioInterface was the name of my C++ project.
Switching to "Release" config, everything worked.
I tracked it to lack of the manifest file alongside my DLL, which I further tracked to having an Assembly Identity set. (Properties > Manifest Tool > General > Assembly Identity)
I removed this setting, and the manifest dropped in the right place, and everything worked.
Having the same problem I found a post that lead me to the debug DLLs in the VS9.0 install. For the default install they were in: C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\Debug_NonRedist\x86\Microsoft.VC90.DebugCRT
.
There are three DLLs and a manifest file. You can add these to your System32
directory, add the directory to your PATH
environment variable or copy the files to same directory as your executable when debugging.
Incremental linking speeds up your builds (the linker only re-links libs that have changed instead of re-linking the entire project). It otherwise has no effect on the build output. For a large project I would not recommend turning off incremental linking.
There are several potential solutions described in this forum post. See if any of those help.
One hint from there:
Go to %System Drive%\Windows\WinSxS and look for the directory x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_597c3456
If this doesn't exist, go to the VS setup and make sure you have all libraries installed under VC++.
And another one:
I had the same problem, but fixed it by turning off incremental linking (Project properties... Linker... General... Enable Incremental Linking: No).
Confirming the last one:
Projects built on a software-mounted drive complain about a missing MSVCR90D.dll. The problem goes away if you turn off incremental linking (and rebuild all, of course).
I tried all the suggested solutions without any luck. I finally found that the manifest was missing from the "C:\WINDOWS\WinSxS\Manifests"
folder.
Find the folder in C:\WINDOWS\WinSxS
where your dll is located. Check to see if there is a manifest in C:\WINDOWS\WinSxS\Manifests
that matches the folder name of your dll. If the manifest is missing, copy the correct manifest from another machine and paste it into the manifest folder. The manifest file names are:
"x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_597c3456.cat"
"x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_597c3456.manifest"