2012-07-11 138 views
1

我正在使用MVC2的Web項目。我決定嘗試用RazorEngine來做一些電子郵件模板。當我使用MVC2項目時,這看起來工作得很好,所以我認爲RazorEngine對於我的電子郵件模板解決方案可以很好地工作。我當時忘記的是我的本地開發機器上已經安裝了MVC3。RazorEngine是否需要安裝MVC3?

無法加載文件或程序集「System.Web.Razor:

當應用程序試圖與RazorEngine做任何一個預測試服務器我得到在日誌下面的錯誤上部署項目後,版本= 1.0.0.0, Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其 依賴項之一。

系統找不到指定的文件。

文件名: 'System.Web.Razor,版本= 1.0.0.0,文化=中性公鑰= 31bf3856ad364e35'

在RazorEngine.Compilation.DefaultCompilerServiceFactory.CreateCompilerService(語言 語言)

在RazorEngine.Templating.TemplateService.CreateTemplateType(字符串razorTemplate,類型modelType)

在RazorEngine.Templating.TemplateService.CreateTemplate [T](StringrazorTemplate,T模型)

在RazorEngine.Templating.TemplateService.Parse [T](字符串razorTemplate,T模型)

在RazorEngine.Razor.Parse [T](字符串razorTemplate,T模型)

在System.Dynamic.UpdateDelegates。 UpdateAndExecute3 [T0,T1,T2,TRET](調用點站點,T0爲arg0,T1 ARG1,T2 ARG2)

在Persistence.Utility.RazorEngineHelper.Parse(字符串TEMPLATENAME,對象模型)在...

它無法找到'System.Web.Razor'這一事實意味着此DLL不存在部署的服務器。我能想到的部署服務器和本地開發機器之間唯一的區別是部署服務器沒有安裝MVC3,但我可能會誤解,因爲部署服務器不是我通常控制的東西,因此我沒有很多關於它的信息。它是爲了託管這個特定的應用程序,所以此應用程序之前已經部署到該服務器。這是我第一次使用RazorEngine作爲依賴進行部署。

回答

2

的System.Web.Razor DLL部署與RazorEngine,你可以驗證它是在你\bin目錄?

+1

謝謝!這是真的。我檢查了我的Web項目的bin目錄,並且'System.Web.Razor.dll'不存在。我的web項目有一個項目引用另一個項目B和項目B是引用RazorEngine的。在檢查項目B的bin目錄時,我可以看到兩個DLL,但是我的主Web項目在bin中只有'RazorEngine.dll',而不是'System.Web.Razor.dll',這就是爲什麼我會得到上述錯誤。有什麼想法嗎? – tkha007 2012-07-11 20:58:11

+0

啊我剛剛遇到這個[後](http://stackoverflow.com/questions/7433764/not-all-of-a-librarys-refrenced-dlls-are-copied-local-when-refrencing-from- ANOT)。這必須是爲什麼'System.Web.Razor.dll'不會被複制到主Web項目。 – tkha007 2012-07-11 21:49:52

0

我覺得剃刀語法/視圖引擎第一次出現在MVC 3

0

我有同樣的問題。

解決方法是將所需版本的System.Web.Razor.dll放入與RazorEngine.dll相同的文件夾中。

如果你這樣做,RazorEngine.dll和System.Web.Razor.dll將被複制到destionation。

相關問題