2012-04-13 23 views
8

我收到此錯誤 「無法加載從裝配型「System.Runtime.CompilerServices.ExtensionAttribute‘mscorlib程序,版本= 4.0.0.0,文化=中性公鑰= b77a5c561934e089’ 「。裝配撞毀我的asp.net 4.0

只要我在我的網站的bin目錄中包含quartz.net的dll並在代碼中引用它。 我相信它必須處理錯誤的.net框架。

我的asp.net網站使用目標框架4.0 我使用了.NET 4 quartz.net文件

和我的IIS應用程序池(經典.NET庫)設置爲運行.NET 4.0 frework。

我不知道從哪裏開始,但我知道肯定有什麼取出石英,我期待和好如初(減去調度)

回答

5

這是最終版本中引入的問題,因爲Quartz.Net是針對4.5框架編譯的。看看報告問題的this thread。固定版本的dll可用。

1

您是否嘗試過加入引用mscorlib程序組件,將複製本地到

閱讀here

這個問題有ILMerge.exe是如何運行的事情。類型轉發(在 這種ExtensionAttribute類型的情況下)被認爲是不中斷的 更改,因爲它是透明的,支持的 方案,運行時以及我們的編譯器。編譯器或類似編譯器的工具(ILMerge就是其中之一)預計將支持 類型轉發,就像它們預計支持運行時的其他功能 一樣。此外,支持的運行編譯器的方式是 ,通過明確並完全引用相應的多目標包的參考程序集 。

6

ExtensionAttribute class需要在C#中使用擴展方法。在.NET Framework 4.0中,此類位於程序集System.Core.dll中,但在.NET Framework 4.5中,類已移至mscorlib.dll。我猜這個問題是,Quartz.dll(或其他程序集)是在安裝了.NET Framework 4.5的計算機上編譯的,因此期望在mscorlib.dll中使用ExtensionAttribute,而在只有.NET Framework 4.0的計算機上不存在ExtensionAttribute。

我相信在沒有.NET Framework 4.5的計算機上重新編譯Quartz應該可以解決這個問題。同時在IIS服務器上安裝.NET Framework 4.5應該有所幫助,但我不會推薦它,因爲它仍然是測試版。

+0

或者,確保引用程序集安裝在構建有故障的DLL的構建服務器上,http://marcgravell.blogspot.co.nz/2012/09/iterator-blocks-missing-methods-and-net。 HTML – Myster 2013-02-25 23:09:42