VS 2012,MVC4 app使用Postal 0.8.0
当我NuGet安装Andrew的Davey's Postal 0.8.0时,它可以在我的开发机器上运行,但是当我部署它时,我收到此错误消息:
无法加载文件或程序集'System.Web.Razor,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一。系统找不到指定的文件。
我花了几天时间试图让它发挥作用。这个问题的原因是什么,你如何解决它?
答案 0 :(得分:3)
使用NuGet安装Postal时,它会将System.Web.Razor 2.0替换为System.Web.Razor 1.0。我不得不删除对System.Web.Razor 1.0的引用,然后在System.Web.Razor 2.0中添加。您必须在System.Web.Razor的Properties中另外将Copy Local设置为True,然后重建项目。一旦我这样做,VS2012将System.Web.Razor.dll复制到已部署的bin目录并清除问题。
Postal还将这些依赖项添加到web.config中。我删除它们仍然可以正常工作。
<dependentAssembly>
<assemblyIdentity name="System.Web.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.3.0.0" newVersion="1.3.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="RazorEngine" publicKeyToken="9ee697374c7e744a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.8.0" newVersion="3.0.8.0" />
</dependentAssembly>
更新 3/3/13
AD刚刚发布了Postal v0.8.2,它将System.Web.Razor更新为2.0。
随着ASP.NET和Web Tools 2012.2(http://www.asp.net/vnext/overview/fall-2012-update)的发布,WebGrease依赖关系现在似乎是默认的。