Situazione:
i file di mapping e le classi helper di NH stannno nel progetto Persistence a cui il progetto Web ed altri progetti fanno riferimento. Essendo diversi i progetti che utilizzano Persistence non si vuole duplicare la configurazione di NH per ognuno di essi, per cui si è deciso di non inserirla nel web.config ma in un file di configurazione presente in Persistence.
Pb1: il file di configurazione, normalmente, non segue il file assembly (che in fase di compilazione viene copiato nella directory del progetto "chiamante").
Soluzione: imposto Copy to output directory = copy always per il file di configurazione.
Pb2: la sessionFactory deve essere creata leggendo la configurazione da un file diverso da web.config.
Quasi-soluzione1: è possibile specificare un nome arbitrario di file da cui la session factory deve attingere la configurazione così:
sessionFactory = new Configuration().Configure("C:\\...path...\\nhibernate.config").BuildSessionFactory();
Pb: se utilizzo un percorso relativo cerca il file in System32 e non nella cartella di Output. Soluzione?
Soluzione2: chiamo il file di configurazione con il nome standard gestito da NH, cioè hibernate.cfg.xml; in questo caso il file viene cercato nella cartella di output e il tutto funziona.