Tom Hollander, Product Manager of Enterprise Library, announced that a new patch is out for Ent Lib. It patches a memory leak in the Enterprise Library Configuration Application Block, which is used by all of the other blocks. I downloaded it, installed it and was done within minutes. Testing several apps that use Ent Lib showed that everything was well for my applications. You can go to the Ent Lib community site and download the patch (you need to join the community to get the patch).

The patch contains 2 files:

  • ConfigurationManager.cs
    • The source file that they made the changes to for the Config block
    • I glanced through this and it looks like they removed the finalizer and the 2 dispose methods
  • Patch 1475 Readme.htm
    • Contains installation instructions and details on the issue
  • Here are the installations instructions, excerpted from the Readme file:

    1. Copy the included file ConfigurationManager.cs into [Enterprise Library Installation Directory]\src\Configuration. By default, Enterprise Library is installed to "C:\Program Files\Microsoft Enterprise Library". A file with the same name will already exist in the location. If you have made any updates to this file yourself, you should make a backup copy first.
    2. Open up EnterpriseLibrary.sln in Visual Studio .NET, either by opening the file from the .\src folder or choosing the "Enterprise Library Solution" shortcut on the Start Menu.
    3. Choose Build Solution from the Build menu to rebuild all projects in the Enterprise Library solution.
    4. Verify the solution successfully builds and close Visual Studio .NET.
    5. Open the Start Menu, find the Enterprise Library folder and run the "Copy assemblies to bin directory script".
    6. Delete any other copies of Microsoft.Practices.EnterpriseLibrary.Configuration.dll that you have on your system, and replace them with the newly built version in .\bin directory.
    7. Recompile any applications that use Enterprise Library.