2012-04-13 13 views
8

estoy recibiendo este error "no se pudo cargar el tipo 'System.Runtime.CompilerServices.ExtensionAttribute' del ensamblado 'mscorlib, versión = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089' "montaje estrellarse mi asp.net 4.0

siempre que incluya dlls de quartz.net en el directorio bin de mi sitio web y lo mencione en el código. Estoy seguro de que tiene que ver con el .NET framework incorrecto.

mi sitio asp.net está utilizando marco de destino 4.0 estoy usando el .NET 4 archivos quartz.net

y mi grupo de aplicaciones IIS (clásico .net piscina) está configurado para ejecutarse .NET 4.0 frework.

No estoy seguro de por dónde empezar, pero lo que sé con certeza es eliminar cuarzo y estoy buscando bien de nuevo (menos la programación)

Respuesta

5

Este fue un problema introducido en la versión final porque Quartz.Net se compiló contra el marco 4.5. Eche un vistazo al this thread donde se informó el problema. Una versión fija de la DLL está disponible.

1

has necesitado añadir la referencia a mscorlib montaje y puesta Copia local en verdadero?

lectura here:

Este problema tiene que ver con la forma en que se ejecuta ILMerge.exe. El reenvío de tipo (en este caso del tipo ExtensionAttribute) se considera un cambio sin interrupción , en el sentido de que es transparente, en los escenarios admitidos , al tiempo de ejecución, así como a nuestros compiladores. Se espera que compiladores o compiladores (que ILMerge es uno de) admitan el reenvío de tipo , al igual que se espera que admitan otras características del tiempo de ejecución. Además, la forma admitida de ejecutar compiladores es al hacer referencia explícita y completamente a los ensamblajes de referencia del el paquete Multi-Target apropiado.

6

ExtensionAttribute Se requiere clase para usar métodos de extensión en C#. En .NET Framework 4.0, esta clase se encuentra en el ensamblado System.Core.dll, pero en la clase .NET Framework 4.5 se movió a mscorlib.dll. Supongo que el problema es que Quartz.dll (o algún otro ensamblado) se compiló en la computadora con .NET Framework 4.5 instalado, por lo que esperaba ExtensionAttribute en mscorlib.dll, que no está disponible en computadoras con .NET Framework 4.0.

Creo que la recompilación de Quartz en la computadora sin .NET Framework 4.5 debería resolver el problema. También la instalación de .NET Framework 4.5 en el servidor con IIS debería ser de ayuda, pero no lo recomendaría ya que todavía es beta.

+0

O bien, asegúrese de que los ensamblados de referencia estén instalados en el servidor de compilación que está creando las DLL defectuosas, http://marcgravell.blogspot.co.nz/2012/09/iterator-blocks-missing-methods-and-net. html – Myster