EntLib 6.0 NuGet package dependencies

Topics: Transient Fault Handling Application Block ("Topaz")
May 8, 2014 at 3:23 AM

I'm using EntLib 6.0 Transient Fault Handling Block (Topaz) and I have been pulling the dll's from NuGet. I am using Topaz, "Topaz - Windows Azure SQL Database integration" and "Topaz Declarative configuration support" packages. The problem is that in Nuget the Declarative Config package has dependencies on .Data, .WindowsAzure.Storage, .Caching, and .ServiceBus packages so I get all these bloating my project. I call it bloat because I can go in and manually remove these extra packages (and project references) and my project still builds and runs. This is okay I guess, but I'm worried when some else pulls the project from source control and the packages get pulled from NuGet the extra packages will come along too and that'll add confusion to next commit that is done.

For now I have edited the NuGet packages.config files in my projects and this has stopped the extra packages being downloaded.

I'm not sure who looks after the NuGet packages but if this could be fixed, of if someone could tell me how I might be misguided on this that would be great.


May 9, 2014 at 2:19 AM
As the name indicates the Enterprise Library - Transient Fault Handling Application Block - Declarative configuration support provides the ability to configure Topaz using the configuration file (and configuration tool). Baked into the configuration are specific settings for retry policies for Azure Storage, ServiceBus, etc. That is why the dependencies exist.

The reason they are bundled together is probably partly historical; in the original Topaz everything was bundled together. It was probably decided that the effort to break out each retry policy into it's own assembly and Nuget package was decided to be too high given the expected use of the package. Another factor might have been that for existing users of Topaz adding multiple packages might be seen as a negative. At least, that is my guess as to the motivations without any direct first hand knowledge.

Randy Levy
Enterprise Library support engineer
Support How-to