NancyFx / Nancy.Bootstrappers.Ninject

Nancy boostrapper for the Ninject container
MIT License
17 stars 25 forks source link

Ninject v3.2.2 dependency resolution issue #16

Closed abbottdev closed 9 years ago

abbottdev commented 10 years ago

Hi

The latest release of Ninject (v3.2.2) does not work out of the box with Bootstrappers.Ninject - the dependency resolution is picking up the wrong version of Ninject's Child Kernel library - see below for package manager output:

PM> Get-Package Ninject

Id                             Version              Description/Release Notes                                                                                                       
--                             -------              -------------------------                                                                                                       
Ninject                        3.2.2.0              Stop writing monolithic applications that make you feel like you have to move mountains to make the simplest of changes. Ninj...

PM> Install-Package Nancy.Bootstrappers.Ninject -ProjectName xxxxxx -Version 0.23.2
Attempting to resolve dependency 'Nancy (≥ 0.23.2)'.
Attempting to resolve dependency 'Ninject (≥ 3.0.0)'.
Attempting to resolve dependency 'Ninject.Extensions.ChildKernel (≥ 3.0)'.
Attempting to resolve dependency 'Ninject (≥ 3.0.0.0 && < 3.1.0.0)'.
Install-Package : Already referencing a newer version of 'Ninject'.
At line:1 char:1
+ Install-Package Nancy.Bootstrappers.Ninject -ProjectName xxxxxx ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Install-Package], InvalidOperationException
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand

PM> 

Manually installing Ninject.Extensions.ChildKernel v3.2.0.0 first, and then installing the bootstrapper works. I assume this is because You're trying to target multiple versions of Ninject with a single package but I think Ninject's versioning may prohibit this. The only way I could therefore see this working would be to mirror the Ninject version's the same was as the ChildKernel library is doing, or eliminate support for older versions...

Either way, I thought I would raise it.

Thanks.