I have the following project structure using a Domain Model, StructureMap and Fluent NHibernate:
The problem I'm having is that Fluent NHibernate requires all of the following to be the bin directory of the website for it to work at runtime:
- Antlr3.Runtime.dll *
- Castle.Core.dll
- Castle.DynamicProxy2.dll
- FluentNHibernate.dll *
- Iesi.Collections.dll *
- log4net.dll *
- NHibernate.ByteCode.Castle.dll
- NHibernate.dll *
The problem I'm having is that not all of these assemblies are output to my website's bin directory. Currently only the items with a *
are output correctly. The items in bold are missing from the bin directory.
Now, I would of assumed that the reason for this is because I have not added them as references to my Fluent NHibernate
project. The only references I currently have are to NHibernate.dll and FluentNHibernate.dll. These two references alone are enough to bring through the items marked with a *
, but they do not bring through the missing items.
So, I then thought that to get them to all come through I'd just add them as references to the Fluent NHibernate
project. Unfortunately, this made no difference; the same items were still missing from the bin directory.
I've never really understood how visual studios decides which assemblies to copy over. I always assumed it was any assembly marked as Copy Local=true, but this doesn't seem to be the case in this scenario.
Of course I could just add all the assembly references into Website
, but then that'd completed defeat the point of loosely coupling the projects through StructureMap
.
Does anyone have any idea why the assemblies are missing and how I can get them to copy over correctly?