0

VS 2012,使用 Postal 0.8.0 的 MVC4 应用程序

当我 NuGet 安装 Andrew's Davey's Postal 0.8.0 时,它可以在我的开发机器上运行,但是当我部署它时,我收到以下错误消息:

无法加载文件或程序集“System.Web.Razor,Version=2.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。该系统找不到指定的文件。

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

4

1 回答 1

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 的属性中另外将 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>

2013 年 3 月 3 日更新

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 依赖项现在似乎是默认设置。

于 2013-02-28T20:44:00.333 回答