Need Advice on Enterprise Library 6.0 Deployment

Topics: Building and extending application blocks, General discussion
Apr 25, 2014 at 12:17 AM
Hi All,

We have been using Enterprise Library since its version 2 release. This is how we have been referencing Enterprise Library dlls.
  1. Copy all the Enterprise Library dlls to a 'CommonLibrary' folder under the application's solution folder.
  2. Reference each dll by adding reference and providing the path.
We do not install Enterprise Library to GAC on any server or workstation. This scheme has worked for us even though I am not sure if this is an acceptable approach.

Can we continue to do this with Enterprise Library 6? I used NuGet to download the application blocks but Nuget creates a packages folder under the solution and copies the libraries there under a slightly complex folder hisrarchy. Do we have to follow the folder hierarchy? I copied all dll files to a common folder and removed the package folder and the other related xml files and my application seems to work fine. Also, I am able to invoke the v6 configuration GUI. I'd like to know if there are any other downsides to my approach other than the fact that I have to know all the dependencies and make sure all the dlls are copies under common folder and references by the .net c# projects.
Apr 28, 2014 at 5:26 AM
You can continue using the approach you describe. Deploying in the GAC is not the preferred approach.

There are only 2 things that really matter: resolving the assemblies at compile time and loading the assemblies at runtime. As long as the assemblies can be located everything should be OK.

As you say NuGet does help in managing dependencies and ensuring that the latest (and/or correct) version of assemblies is being used as well as ensuring that the correct assemblies are used for the target platform (e.g. Silverlight). Also, the Enterprise Library binaries path is managed automatically which enables the VS integrated config console to work seamlessly (you can always configure the path to wherever the assemblies are located).

Another option that might be interesting is setting up a local NuGet repository: see Hosting Your Own NuGet Feeds.

If you don't want to use NuGet you can always download the installation from the Download Center: . Then you could run the install-packages.ps1 (which does use NuGet) script to download all of the assemblies into one folder. Note that this method will download the versions included in the original release and does not include any updates that have been released more recently.

Randy Levy
Enterprise Library support engineer
Support How-to