Assembly Absturz meines asp.net 4.0

8

Ich erhalte diesen Fehler "konnte den Typ 'System.Runtime.CompilerServices.ExtensionAttribute' nicht aus der Assembly 'mscorlib, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089' laden."

wenn ich die dlls von quartz.net in das bin-Verzeichnis meiner Website einschließe und es im Code referenziere. Ich bin sicher, dass es mit dem falschen .net-Framework zu tun hat.

Meine asp.net-Site verwendet das Zielframework 4.0 Ich benutze die .net 4 Quartz.net Dateien

und mein IIS-App-Pool (klassischer .net-Pool) ist so eingestellt, dass er .net 4.0 frework ausführt.

Ich bin mir nicht sicher, wo ich anfangen soll, aber was ich sicher weiß, ist Quarz zu entfernen und ich sehe wieder gut aus (ohne die Planung)

    
Crudler 13.04.2012, 10:15
quelle

3 Antworten

5

Dies war ein Problem, das in der endgültigen Version eingeführt wurde, da Quartz.Net mit dem Framework 4.5 kompiliert wurde. Sehen Sie sich diesen Thread an, in dem der Problem wurde gemeldet. Eine feste Version der DLL ist verfügbar.

    
jvilalta 13.04.2012, 20:17
quelle
6

ExtensionAttribute Klasse muss verwendet werden Erweiterungsmethoden in C #. In .NET Framework 4.0 befindet sich diese Klasse in der Assembly System.Core.dll, in der .NET Framework 4.5-Klasse wurde sie jedoch in mscorlib.dll verschoben. Ich nehme an, dass das Problem darin besteht, dass Quartz.dll (oder eine andere Assembly) auf einem Computer mit installiertem .NET Framework 4.5 kompiliert wurde und daher ExtensionAttribute in mscorlib.dll erwartet, das auf Computern mit nur .NET Framework 4.0 nicht vorhanden ist.

>

Ich glaube, dass die Neukompilierung von Quartz auf einem Computer ohne .NET Framework 4.5 das Problem lösen sollte. Auch die Installation von .NET Framework 4.5 auf dem Server mit IIS sollte helfen, aber ich würde es nicht empfehlen, da es noch Beta ist.

    
Ňuf 13.04.2012 19:38
quelle
1

Haben Sie versucht, den Verweis auf die mscorlib-Assembly hinzuzufügen und "Copy Local" auf true zu setzen?

Lesen hier :

  

Dieses Problem hat damit zu tun, wie ILMerge.exe ausgeführt wird. Typ Weiterleitung (in   Dieser Fall des ExtensionAttribute-Typs) gilt als nichtbrechend   Veränderung, in dem Sinne, dass es transparent ist, in der unterstützten   Szenarien, zur Laufzeit, sowie unsere Compiler. Compiler oder   Compiler-ähnliche Tools (von denen ILMerge ist) werden voraussichtlich unterstützen   Typ Weiterleitung, genau wie sie andere Funktionen unterstützen sollen   der Laufzeit. Außerdem ist die unterstützte Art, Compiler auszuführen   durch explizites und vollständiges Referenzieren der Referenzbaugruppen von   das entsprechende Multi-Target-Paket.

    
Emanuele Greco 13.04.2012 10:49
quelle

Tags und Links