Общая ошибка System.Web.Razor(также почтовый проект)

VS 2012, приложение MVC4, используя почтовый 0.8.0

Когда я устанавливаю NuGet Andrews Daveys Postal 0.8.0, он работает на моей машине разработки, но когда я его развертываю, я получаю это сообщение об ошибке:

Не удалось загрузить файл или сборку "System.Web.Razor, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35" или одну из его зависимостей. Система не может найти указанный файл.

Я потратил несколько дней, пытаясь заставить это работать. В чем причина этой проблемы и как вы ее исправите?

Ответ 1

Когда вы устанавливаете Postal с NuGet, он заменяет System.Web.Razor 2.0 на System.Web.Razor 1.0. Мне пришлось удалить ссылку на System.Web.Razor 1.0, а затем добавить в System.Web.Razor 2.0. Вы должны дополнительно установить Копировать Локальный в Истину в Свойствах для System.Web.Razor, а затем перестроить проект. Как только я это сделал, 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.

Теперь зависимость WebGrease с выпуском ASP.NET и веб-инструментов 2012.2 (http://www.asp.net/vnext/overview/fall-2012-update) по умолчанию.