24
votes

Unhandled Exception: System.IO.FileLoadException: Could not load file or assembl y 'TheLibrary, Version=1.2.3905.36284, Culture=neutral, PublicKeyToken=14 04827c3a8f2601' or one of its dependencies. The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log for more detail. (Exception from HRESULT: 0x800736B1) File name: 'TheLibrary, Version=1.2.3905.36284, Culture=neutral, PublicKe yToken=1404827c3a8f2601' ---> System.Runtime.InteropServices.COMException (0x800 736B1): The application has failed to start because its side-by-side configurati on is incorrect. Please see the application event log for more detail. (Exceptio n from HRESULT: 0x800736B1)

When I look at the event log, I get this error.

Activation context generation failed for "C:\project\Debug\MyLibrary.dll". Dependent Assembly Microsoft.VC90.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8" could not be found. Please use sxstrace.exe for detailed diagnosis.

I used sxstrace to log the error and here is the result:

================= Begin Activation Context Generation. Input Parameter: Flags = 0 ProcessorArchitecture = x86 CultureFallBacks = en-US;en ManifestPath = C:\Windows\system32\cmd.exe AssemblyDirectory = C:\Windows\system32\ Application Config File = ----------------- INFO: Parsing Manifest File C:\Windows\system32\cmd.exe. INFO: Manifest Definition Identity is Microsoft.Windows.FileSystem.CMD,processorArchitecture="x86",type="win32",version="5.1.0.0". INFO: Activation Context generation succeeded. End Activation Context Generation.

================= Begin Activation Context Generation. Input Parameter: Flags = 0 ProcessorArchitecture = x86 CultureFallBacks = en-US;en ManifestPath = C:\Debug\TheLibrary.dll AssemblyDirectory = C:\Debug\ Application Config File = ----------------- INFO: Parsing Manifest File C:\Debug\TheLibrary.dll. INFO: Manifest Definition Identity is (null). INFO: Reference: Microsoft.VC90.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8" INFO: Resolving reference Microsoft.VC90.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8". INFO: Resolving reference for ProcessorArchitecture x86. INFO: Resolving reference for culture Neutral. INFO: Applying Binding Policy. INFO: No publisher policy found. INFO: No binding policy redirect found. INFO: Begin assembly probing. INFO: Did not find the assembly in WinSxS. INFO: Attempt to probe manifest at C:\Windows\assembly\GAC_32\Microsoft.VC90.DebugCRT\9.0.21022.8__1fc8b3b9a1e18e3b\Microsoft.VC90.DebugCRT.DLL. INFO: Attempt to probe manifest at C:\Debug\Microsoft.VC90.DebugCRT.DLL. INFO: Attempt to probe manifest at C:\Debug\Microsoft.VC90.DebugCRT.MANIFEST. INFO: Attempt to probe manifest at C:\Debug\Microsoft.VC90.DebugCRT\Microsoft.VC90.DebugCRT.DLL. INFO: Attempt to probe manifest at C:\Debug\Microsoft.VC90.DebugCRT\Microsoft.VC90.DebugCRT.MANIFEST. INFO: Did not find manifest for culture Neutral. INFO: End assembly probing. ERROR: Cannot resolve reference Microsoft.VC90.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8". ERROR: Activation Context generation failed. End Activation Context Generation.

Cannot resolve reference Microsoft.VC90.DebugCRT,processorArchitecture=...

Any ideas?

9
Program was built with VS 2008 and i installed Microsoft Visual C++ 2008 Redistributable Package (x86). but still didnt help.DarthVader
For non-programmers getting here from Google, this error can sometimes happen if you launch a program before Windows finishes starting up. If you wait a few seconds and try launching the program again then it'll usually work fine afterwards.Pikamander2

9 Answers

34
votes

We've just had this exact same error but the cause was so misleading compared to the error it's hopefully worth adding here as it comes top on google...

The "The application has failed to start because its side-by-side configuration is incorrect" error was occurring when starting a windows service. In our instance this was caused by the services application.config xml file not being valid - someone had edited it manually and pasted in an extra closing tag. Amending this resolved the "not related in any way whatsoever" error message.

The quickest way to check this would be to paste the xml file into one of the many on-line xml validators free on the web.

18
votes

Dependent Assembly Microsoft.VC90.DebugCRT,... could not be found

Yes, that can only be found on a machine that has Visual Studio installed. The DebugCRT is not distributable. And it doesn't make sense to write C or C++ code and deploy the debug build for it, it is a lot slower.

Deploy the Release build version of your DLL. And the VC++ Libraries, one of the check boxes in the Prerequisites of a Setup project.

10
votes

This is marked C#, so I'll give the C# answer: Something has mangled your projectname.exe.config file.

Pull it up in a text editor and chances are something won't be closed properly or there will be a few garbage characters at the end. You can figure out why that happened later. But for now, just fix it and you'll be able to launch.

4
votes

You can just delete the manifest file from your application path, then the executable will work properly,

3
votes

For real checking if you are using Windows 7 (must be same for 8 and Vista)

Open from control panel system Administrative tool and select event viewer

Click windows logs-> Application

Find your error log under the column side-by-side

Note the line number where the error occurs.

Then with a editor such write or notepad open yourfilename.exe.manifest

Then from line number </ to /> delete the lines and save the file

Your problem is resolved.

3
votes

I found side by side error there is a mismatched or system error in app.config file. find bug in your app.config file correct it.

3
votes

I wanted to pin-point one more reason why this error could arise: wrong encoding of *.config file.

The file needs to be in UTF-8, while you can actually get ANSI accidentally nowadays by creating configuration file manually using notepad.exe.

1
votes

I had this issue and it was a simple problem with the version value in assemblyIdentity element of the app.manifest file. Apparently version must have all four numbers (unless assemblyIdentity is ignored which is the case if the manifest is embedded).

So the fix here:

<assemblyIdentity name="MyApplication" version="1.0.1" publicKeyToken="D3567E058552E2DF" type="win32" processorArchitecture="x86" />

is to set

version="1.0.1.0"

After that, everything was hunky-dory.

0
votes

Make sure that you don't have misplaced configurations, like an <httpsTransport> within an http web service binding.