Why do I get an "System.IO.FileLoadException: Could not load file or assembly" error?

In my .NET project I get an "System.IO.FileLoadException: Could not load file or assembly" error. What could be causing this?

28th October 2019
ian.morris

In my .NET project I get an "System.IO.FileLoadException: Could not load file or assembly" error. What could be causing this?

This is probably because you have an strong-named assembly which has not been redirected. iText 7 has add-ons which can be released separately from releases of the core library, and so may contain references to a different version of the library than the one you are using.

Fortunately, a feature was introduced in .NET Framework 4.5.1 called Automatic Binding Redirect Generation which can automatically resolve this issue. As of .NET 4.5.1 binding redirection should work out of the box, and Visual Studio will usually add the required lines to your project file even for earlier versions. However, depending on your project or your Visual Studio settings this feature may be turned off, so you may need to add them manually.

If you're using strong-named assemblies, check if the following lines exist in your project file (.csproj). If they do not exist, try adding them to resolve the FileLoadException error:

<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> 
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>

By setting these two flags, your project should now load the correct iText library version.

We hope this information has been helpful.



Contact

Still have questions? 

We're happy to answer your questions. Reach out to us and we'll get back to you shortly.

Contact us
Stay updated

Join 11,000+ subscribers and become an iText PDF expert by staying up to date with our new products, updates, tips, technical solutions and happenings.

Subscribe Now