Archived Forum Post

Index of archived forum posts

Question:

Visual Studio 2012: Could not load file or assembly ‘ChilkatDotNet45.dll’

Dec 06 '14 at 08:46

(Using the Chilkat .NET assembly for the 4.5 Framework (Visual Studio 2012)) The component works fine at my server. But when I publish the application and install it on another computer, it shows the following error:

“Could not load file or assembly ‘ChilkatDotNet45.dll” or one of its dependencies. The specified module could not be found.”

And “Details” shows:

“Exception Text System.IO.FileNotFoundException: Could not load file or assembly ‘ChilkatDotNet45.dll’ or one of its dependencies. The specified module could not be found.”

I have installed Microsoft .NET Framework 4.5 on the computer. And I use x64 build, and both computers use Win7 x64 OS.

I even tried to place ChilkatDotNet45.dll at various places but it did not help.

Any idea? Thank you!


Answer

The problem is with the "dependency". The only dependency is the Visual C++ Redistributable for Visual Studio 2012. The Chilkat .NET assembly is a mixed-mode assembly, where the inner core is written in C++ and compiles to native code. There is a dependency on the VC++ runtime libs. Given that Visual Studio 2012 is new, it won't be already on most computers. Therefore, it needs to be installed. It can be downloaded from Microsoft here:

Visual C++ Redistributable for Visual Studio 2012

If using a .msi install for your app, it should also be possible to include the redist as a merge-module, so that it's automatically installed w/ your app if needed.


Answer

Note: Each version of Visual Studio corresponded to a new .NET Framework release:

VS2002 - .NET 1.0
2003 - .NET 1.1
2005 - .NET 2.0
2008 - .NET 3.5
2010 - .NET 4.0
2012 - .NET 4.5
The ChilkatDotNet45.dll is for the .NET 4.5 Framework, and therefore needs the VC++ 2012 runtime to be present on the computer.

Likewise, the ChilkatDotNet4.dll is for the 4.0 Framework and needs the VC++ 2010 runtime.

The ChilkatDotNet2.dll is for the 2.0/3.5 Frameworks and requires the VC++ 2005 runtime. (It is unlikely you'll find a computer that doesn't already have the VC++ 2005 runtime already installed.)