Binding failure was detected 'Microsoft.Practices.EnterpriseLibrary.Validation'

Alright I've found a solution. I never could accept turning off exceptions as an answer. Just seems somehow wrong....

What seems to be happening is that in previous assemblies, or previous versions of your current assembly, certain references were used externally. Even though your code may have long since abandoned those references, the names are still, some mysterious somewhere, being searched for in the assembly.

Go to your AssemblyInfo.cs files and find ThemeInfo:

[assembly: ThemeInfo(
ResourceDictionaryLocation.ExternalAssembly, //where theme specific resource dictionaries are located
//(used if a resource is not found in the page, 
// or application resource dictionaries)
ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
//(used if a resource is not found in the page, 
// app, or any theme specific resource dictionaries))]

Change the first location to 'None':

[assembly: ThemeInfo(
ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
//(used if a resource is not found in the page, 
// or application resource dictionaries)
ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
//(used if a resource is not found in the page, 
// app, or any theme specific resource dictionaries))]

And keep your exceptions turned on! I will be posting this answer to various questions of this similar nature.


This is not a fatal error; it's a Managed Debugging Assistant, alerting you to a potential problem.
Go to Debug, Exceptions and uncheck it.

You can also just press F5 to continue execution.


I had a similar problem with one of the assemblies in my project. in my case it was caused by the assembly (dll) not being available in the bin/debug folder. This was solved by installing the referenced assembly in the parent project using NuGet, which created a dll in the bin/debug folder of the project upon rebuilding. What you can also try is to copy and paste the dll in the bin/debug folder of your solution from the original location of the dll.

Here are the step I took to troubleshoot the problem.

  • The MSDN documentation provides some suggestions on loading the fusion log to see which assembly bindings are active. the link to the MSDN documents I used are binding failure fusion log

(You have to start the fusion log viewer as an admin which allows you to change settings. in the fusion log viewer to display assembly bindings. There are enough resources online on how to work with the fusion viewer)

  • Figure out the location of the referenced dll and check whether it is there.
  • Copy and paste the dll in the right location.
  • rebuild solution

    ErrorHandling C#