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