La documentazione (here e here) è in particolare mancanza di informazioni su come riferimenti a moduli vengono risolti:In che modo Orchard risolve i riferimenti nei moduli?
Riferimenti Risoluzione
(TODO: Spiegare come Orchard capisce i riferimenti, cercando in "Riferimenti "la sezione del file csproj oltre a esaminare i binari di assembly aggiuntivi rilasciati in ogni directory" bin "del modulo)
Sfortunatamente, questo è esattamente le informazioni di cui ho bisogno. Ho creato un modulo personalizzato che ha un riferimento a una DLL interna personalizzata. Quando cerco di usare una classe da questa DLL, ottengo la seguente eccezione:
Impossibile caricare il tipo 'Custom.MyClass' dal assembly 'personalizzato, Version = [versione], cultura = [cultura], PublicKeyToken = [Token]'.
Quindi, la mia domanda è quindi: che cosa fa Orchard con i riferimenti dei moduli, e c'è qualcosa di speciale che devo fare per avere Orchard a prendere i riferimenti del mio modulo?
MODIFICA: Sembra che nel documento this blog post siano disponibili informazioni migliori e i relativi commenti. Tuttavia, il mio assembly personalizzato esiste già in src\Orchard.Web\App_Data\Dependencies
e sto ancora ricevendo l'errore.
EDIT2: abbiamo una copia della DLL personalizzato nella cartella lib
, così ho provato riferimento che uno invece (come abbiamo un altro modulo che lo fa con successo), ma ancora nessun cambiamento.
Edit3 :: In riferimento ai due precedenti modifiche, non è la copia dalla cartella lib
alla cartella App_Data\Dependencies
. Ho appena aggiunto una nuova DLL alla cartella lib
e l'ho fatta riferimento e non è stata visualizzata nella cartella Dependencies
. Penso che l'attuale Custom.dll
non sostituisca quello che è lì, motivo per cui sto ricevendo l'errore che sono. Ma perché la copia di Orchard non viene copiata nella cartella Dependencies
?
Il modulo si presenta e funziona bene una volta spostate le DLL di riferimento (che si trovano in una cartella statica) nella cartella 'Dipendenze'. (Il modulo è nel posto giusto - l'ho creato usando la riga di comando del frutteto.) – zimdanen