Could not load file or assembly ‘Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35’

asp.net-mvc-3enterprise-libraryexception

I have integrated my project with another one (MVC3 application). Then I'm getting below error.
Both the projects are working fine with the Microsoft Enterprise Library version 5.2.414.0. After integrating only some of the pages are working and remaining pages throwing below exception.

Could not load file or assembly
'Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its
dependencies. The system cannot find the file specified.

Best Answer

This usually happens if the reference does not have "CopyLocal" flag set to true.

To solve:

  1. Open your solution
  2. Expand until you find your project
  3. Expand references
  4. Select the mentioned assembly
  5. Right-click and press properties (or press F4)
  6. Where it says "Copy local" set it to true

Also, this can happen if you are missing the other enterprise library blocks needed by the mentioned assembly (and copy local true as well), which are:

  • Microsoft.Practices.EnterpriseLibrary.Common.dll
  • Microsoft.Practices.ServiceLocation.dll
  • Microsoft.Practices.Unity.Configuration.dll
  • Microsoft.Practices.Unity
  • Microsoft.Practices.Unity.Interception.Configuration
  • Microsoft.Practices.Unity.Interception