Какую dll мне следует использовать и откуда ее взять? Несколько ответов в Stack Overflow объясняют проблему и решение, как исправить эту ошибку, но ни один из них не говорит мне, какую из версий следует использовать. Итак, вот мой вопрос - он поможет всем тем, у кого есть похожая проблема:
я получаю
The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
У меня есть в проекте Visual Studio после Nuget пакета Nancy Razor ссылка на System.Web.Razor
с версией 4.0.30319
Глядя в папку bin, у меня есть System.Web.Razor с версией файла 2.0.20715.0
, я не уверен, что версия файла имеет какое-либо отношение к версии программного обеспечения...
Пакет Microsoft.AspNet.Razor версии 2.0.30506.0 был установлен с пакетом Nancy.ViewEngines.Razor через Nuget.
Глядя под C:\Windows
, у меня есть целый список временных местоположений для System.Web.Razor.DLL все под Microsoft.NET\Framework\v4.0.30319.0\Temporary ASP.NET Files\
только с одной, казалось бы, другой версией файла System.Web.Razor.DLL в каталоге: Microsoft.NET\assembly\GAC_MSIL\System.Web.Razor\v4_02.0.0.0_31bf....
Вот мой журнал
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Users\me\Documents\Dev\MyProj\web.config
LOG: Using host configuration file: C:\Users\me\Documents\IISExpress\config\aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/a98e1c21/1e31926/System.Web.Razor.DLL.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/a98e1c21/1e31926/System.Web.Razor/System.Web.Razor.DLL.
LOG: Attempting download of new URL file:///C:/Users/me/Documents/Dev/MyProj/bin/System.Web.Razor.DLL.
LOG: Using application configuration file: C:\Users\me\Documents\Dev\MyProj\web.config
LOG: Using host configuration file: C:\Users\me\Documents\IISExpress\config\aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Redirect found in application configuration file: 2.0.0.0 redirected to 3.0.0.0.
LOG: Post-policy reference: System.Web.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/a98e1c21/1e31926/System.Web.Razor.DLL.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/a98e1c21/1e31926/System.Web.Razor/System.Web.Razor.DLL.
LOG: Attempting download of new URL file:///C:/Users/Me/Documents/Dev/MyProj/bin/System.Web.Razor.DLL.
WRN: Comparing the assembly name resulted in the mismatch: Major Version
ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.
Я попытался удалить NUGET, очистив проект, удалив каталоги obj и bin, затем повторно NUGET Nancy Razor и перестроить.
Свойства списка ссылок моего проекта в System.Web.Razor.DLL говорят, что dll следует копировать локально.
Но безрезультатно.
Поэтому я хочу вручную установить ссылку на правильный файл. Где этот правильный файл?
Или я должен что-то сделать с GAC? Мешает ли это моему IIS Express из VS 2013?
Отредактировано 29 декабря 2015 г .:
Моя веб-конфигурация имеет следующее:
<configSections>
<sectionGroup name="system.web.webPages.razor"
type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup,
System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35">
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection,
System.Web.WebPages.Razor, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=31BF3856AD364E35"
requirePermission="false" />
Файлы dll во временных каталогах версии 4.0.30319.0 являются копиями одного и того же файла. Свойства в ссылках (если я перейду к одному из них и добавлю к ссылкам проекта, имеют номер версии: 3.0.0.0, с версией среды выполнения 4.0.30319.0.
Когда я нахожусь в форме References.Add-Reference, она показывает мне, что версия файла: 3.0.20826.0.