2012-04-13 8 views
8

sto ottenendo questo errore Impossibile caricare il tipo 'System.Runtime.CompilerServices.ExtensionAttribute' dal montaggio" 'mscorlib, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089' ".assemblaggio schiantarsi mio asp.net 4.0

ogni volta che includo le dll di quartz.net nella directory bin del mio sito Web e faccio riferimento nel codice. Sono sicuro che abbia a che fare con il framework .net sbagliato.

mio sito asp.net sta usando framework di destinazione 4.0 Sto usando il file quartz.net .net 4

e il mio IIS pool di app (.NET classica piscina) è impostata per eseguire NET 4.0 frework.

non sono sicuro da dove cominciare, ma quello che so per certo è rimuovere quarzo e non vedo di nuovo bene (meno la programmazione)

risposta

5

Questo era un problema introdotto nella versione finale perché Quartz.Net è stato compilato rispetto al framework 4.5. Dai un'occhiata a this thread dove il problema è stato segnalato. È disponibile una versione fissa della DLL.

1

Hai provato aggiungendo il riferimento a mscorlib assemblaggio e impostare copia locale per vero?

lettura here:

Questo problema ha a che fare con il modo in ILMerge.exe viene eseguito. L'inoltro di tipo (in questo caso del tipo ExtensionAttribute) è considerato un cambiamento senza interruzione , nel senso che è trasparente, negli scenari supportati , al runtime, così come i nostri compilatori. I compilatori o gli strumenti simili a compilatori (di cui ILMerge è uno) devono supportare l'inoltro di tipo , proprio come dovrebbero supportare altre funzioni del runtime. Inoltre, il modo supportato di eseguire i compilatori è facendo esplicitamente e completamente riferimento agli assembly di riferimento di il pacchetto Multi-Targeting appropriato.

6

ExtensionAttribute classe è necessario per utilizzare i metodi di estensione in C#. In .NET Framework 4.0 questa classe è in assembly System.Core.dll, ma in .NET Framework 4.5 la classe è stata spostata in mscorlib.dll. Immagino che il problema sia che Quartz.dll (o qualche altro assembly) è stato compilato su computer con .NET Framework 4.5 installato, quindi mi aspetto ExtensionAttribute in mscorlib.dll, che non è presente sui computer con solo .NET Framework 4.0.

Credo che la ricompilazione di Quartz sul computer senza .NET Framework 4.5 dovrebbe risolvere il problema. Anche l'installazione di .NET Framework 4.5 sul server con IIS dovrebbe aiutare, ma non la consiglierei poiché è ancora beta.

+0

Oppure, assicurarsi che gli assembly di riferimento siano installati sul build server che sta creando DLL difettose, http://marcgravell.blogspot.co.nz/2012/09/iterator-blocks-missing-methods-and-net. html – Myster