一般System.Web.Razor错误(也是邮政项目)

时间:2013-02-28 20:42:11

标签: asp.net-mvc-4 postal

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'或其依赖项之一。系统找不到指定的文件。

我花了几天时间试图让它发挥作用。这个问题的原因是什么,你如何解决它?

1 个答案:

答案 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依赖关系现在似乎是默认的。