Could not load file or assembly ChilkatDotNet – Email Experience Manager

From time to time, especially when you are setting up new Sitecore environment on local machine or server you probably have some dependencies issues.

My favorite one is error with dependency of ChilkatDotNet. Why it is my favorite? Because even when you have all Sitecore files on place and installed all modern versions of .Net Framework this library still can brake Sitecore application (You can find ChilkatDotNet library inside Sitecore Email Experience Manager).

In the internet you will find some solutions related to Sitecore environments:

  • http://labs.steveottenad.com/sitecore-damn-you-chilkat/
  • http://www.letsdositecore.com/chilkatdotnet2-dll-in-sitecore-6-5/

But the problem is – they are all about x32 vs x64 bit architecture and used version of chilkatdotnet library – they were not helpful for me.

Enable assembly bind failure logging

I had started to find a way to extend logs to know more about the problem and I found some articles about additional logging mechanisms for assemblies. I decided to enable that in my registry:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion
Add:
DWORD ForceLog set value to 1
DWORD LogFailures set value to 1
DWORD LogResourceBinds set value to 1
DWORD EnableLog set value to 1
String LogPath set value to folder for logs (e.g. C:\FusionLog\)

Unfortunately it did not help for me – I did not find there anything significant (but in general I think that it is worth to know that settings).

You will find more about this here: https://stackoverflow.com/questions/255669/how-to-enable-assembly-bind-failure-logging-fusion-in-net

Old tool for modern work

After checking everything again I had started search of new solutions for my issue and I found one – Dependency Walker.

On website http://www.dependencywalker.com/ you will find simple tool which can check details about dll dependencies and display all errors/warnings.

It might looks like this:

As a result of “opening dll” you will see all broken dependencies. You just have to take the name of missing dll file and check from which library it is to add it to the system or directory.

In my case it was missing “Microsoft Visual C++ 2012 Redistributable” – yes, quite old version – I would not ever install this without Dependency Walker.

Hopefully this tool will also save your time as it saved my – enjoy!