2012-04-13 2 views
8

Я получаю эту ошибку «не удалось загрузить тип 'System.Runtime.CompilerServices.ExtensionAttribute' из сборки 'mscorlib, Version = 4.0.0.0, культура = нейтральной, PublicKeyToken = b77a5c561934e089' «.сборка разбивая мой asp.net 4.0

всякий раз, когда я включаю dll библиотек quartz.net в каталог bin моего веб-сайта и ссылаюсь на него в коде. Я уверен, что это связано с неправильным .net framework.

мой asp.net сайт с целевой базой 4.0 Я использую .net-quartz.net файлы

и мой IIS пул приложений (классический .net бассейн) установлен для запуска .net 4.0 frework.

Я не уверен, с чего начать, но то, что я знаю наверняка, так это удалить Кварц, и я ищу хорошие снова (минус планирование)

ответ

5

Это была проблема, возникшая в окончательной версии, поскольку Quartz.Net был скомпилирован против рамки 4.5. Взгляните на this thread, где сообщалось о проблеме. Доступна фиксированная версия dll.

1

Вы пытались добавить ссылку на mscorlib сборки и установите Copy Local в true?

Чтение here:

Эта проблема связана с тем, как ILMerge.exe запускается. Переадресация типа (в этот случай типа ExtensionAttribute) считается изменением изменений в том смысле, что он прозрачен в поддерживаемых сценариях , во время выполнения, а также в наших компиляторах. Компиляторы или Компиляторные инструменты (из которых один из ILMerge является одним из), как ожидается, поддерживают перенаправление типа , так же как ожидается, что они будут поддерживать другие функции времени выполнения. Кроме того, поддерживаемый способ запуска компиляторов - , явно и полностью ссылаясь на ссылочные сборки соответствующего пакета Multi-Targetting.

6

ExtensionAttribute класс должен использовать методы расширения в C#. В .NET Framework 4.0 этот класс находится в сборке System.Core.dll, но в .NET Framework 4.5 класс был перемещен в файл mscorlib.dll. Я предполагаю, что проблема в том, что Quartz.dll (или какая-то другая сборка) была скомпилирована на компьютере с установленной .NET Framework 4.5, ожидая ExtensionAttribute в mscorlib.dll, чего нет на компьютерах с .NET Framework 4.0.

Я считаю, что повторная компиляция Quartz на компьютере без .NET Framework 4.5 должна решить проблему. Также рекомендуется установить .NET Framework 4.5 на сервере с IIS, но я бы не рекомендовал его, так как он все еще бета-версии.

+0

Или, убедитесь, что эталонные сборки установлены на сервере сборки, который создает неисправные библиотеки DLL, http://marcgravell.blogspot.co.nz/2012/09/iterator-blocks-missing-methods-and-net. HTML – Myster

Смежные вопросы