2013-01-02 36 views
0

我正在開發一個MVC 4應用程序(這是System.Web.Razor版本2.0.0.0)。System.Web.Razor - 奇怪的問題

我從這個應用程序引用了外部程序集(它引用System.Web.Razor版本1.0.0.0)。

我從該程序集的NuGet包中收到了System.Web.Razor v 1.0.0.0,並在我的MVC應用程序的根目錄中添加了一個文件夾名「\ Dependency」,並在web.config中添加了以下內容。

<dependentAssembly> 
    <assemblyIdentity name="System.Web.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
    <codeBase version="1.0.0.0" href="/Dependency/System.Web.Razor.dll"/> 
    </dependentAssembly> 

這適用於我的開發環境。

但在生產環境中,它給我

"Could not load file or assembly 'System.Web.Razor, Version 1.0.0.0". 
The system could not find the file specified. 

我已經在生產環境中檢查的錯誤,並且可以看到「System.Web.Razor」 1.0.0.0版的相關文件夾,也生產服務器上的web.config包含如上所示的綁定。

我記得,我早些時候把這個問題整理出來了,但它現在正在發生,我想擺脫它。

任何想法如何處理這個問題?

感謝

Nirman

附:幾點補充 -

  1. 外部組件引用到System.Web.Razor版本1.0.0.0是RazorEngine版本3.0.8

  2. 該版本是打通MS產生構建

+0

我有點困惑你的文件結構。你是否也在/ bin文件夾中部署System.Web.Razor.dll,或者這是否可以替代?如果S.W.R.dll現在不在/ bin中,當您手動將其添加到部署時會發生什麼? –

+0

/bin已包含System.Web.Razor版本2.0.0.0,我試圖用S.W.R替換它。 1.0.0.0但它給出了缺少版本2.0.0.0的錯誤,原因很明顯。 – Nirman

回答

0

您不應該嘗試在您的項目中同時引用System.Web.Razor.dll的版本1和版本2;它們有許多重複的類和名稱空間名稱,不能以這種方式一起使用。

但是,您看到的錯誤沒有用或不準確。我將調查爲什麼會顯示此錯誤併爲此提出錯誤。

與此同時,您是否聯繫過引用版本1的軟件包的所有者?如果存在硬編碼版本依賴性,那意味着您或其他創建Razor v2應用程序的用戶不能使用該軟件包。

+0

我已經聯繫了此軟件包的所有者,並且還通過codeplex在此軟件包的討論論壇上發佈了此消息。我還查看了該軟件包的源代碼,並且可以看到它只提及v1.0.0.0 ...不確定,如果我自己應該從源代碼重建此版本2.0.0.0的軟件包,或者如果有這個多版本問題的任何解決方案。 – Nirman