Подтвердить что ты не робот

Не удалось загрузить файл или сборку Microsoft.CodeAnalysis

У меня есть веб-проект, который я пытаюсь выполнить, но когда сервер пытается его скомпилировать, я получаю следующую ошибку:

Необработанное исключение: System.IO.FileLoadException: не удалось загрузить файл или сборка "Microsoft.CodeAnalysis, Version = 1.1.0.0, Culture = нейтраль, PublicKeyToken = 31bf3856ad364e35 'или один из его зависимостей. Установленное определение манифеста сборки не сопоставить ссылку на сборку. (Исключение из HRESULT: 0x80131040) --- > System.IO.FileLoadException: Не удалось загрузить файл или сборку" Microsoft.CodeAnalysis, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 'или один из его зависимостей. Установленное определение манифеста сборки не сопоставить ссылку на сборку. (Исключение из HRESULT: 0x80131040)
--- Конец внутренней стеки стека исключений - в Microsoft.CodeAnalysis.CSharp.CommandLine.Program.Main(String [] args)

Таким образом, сервер имеет более старую версию CodeAnalysis, чем мой проект. Поэтому давайте попробуем переадресацию привязки!

<dependentAssembly>
    <assemblyIdentity name="Microsoft.CodeAnalysis" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-9.9.9.9" newVersion="1.0.0.0" />
</dependentAssembly>

К сожалению, я все равно получаю ту же ошибку. Что я делаю неправильно?

4b9b3361

Ответ 1

Я понял это сам. Для всех, кто это читал, проблема заключалась в том, что пакет Nuget Microsoft.CodeDom.Providers.DotNetCompilerPlatform (который также содержит пакет CodeAnalysis) был неправильной версией. Я создал новый веб-проект, сразу же обновил оскорбительный пакет Nuget, и проблема была решена.

Ответ 2

Я решил эту проблему, но удостоверился, что номера версий сборок в моем web.config были правильными.

Edit:

Я тоже попал в эту проблему, и некоторые могут задаться вопросом, как Web.Config может стать неправильным. В моем случае я использую Web.Config Transforms, поэтому файл Web.Config перезаписывается: введите описание изображения здесь

Изменение номера версии в компиляторе Web.Configs(в Web.Template.Config) до номера, соответствующего версии NuGet, решает проблему:

<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.5.0

Ответ 3

Другое возможное исправление (по крайней мере для Visual Studio 2015):

Получите последнее обновление Visual Studio.

Вы можете проверить наличие обновлений, перейдя в Tools/Extensions and Updates/Updates

То же, что и этот Q/A: Visual Studio 2015: быстрые действия больше не работают, ошибка: не удалось загрузить файл или сборку Microsoft.CodeAnalysis

Ответ 5

У меня была эта проблема сегодня, когда я выполнял обновление Umbraco v7.13.0, простое обновление следующего пакета устранило мою проблему, это, очевидно, общая проблема с такими вещами, как обновления Umbraco.

Update-Package -Reinstall Microsoft.CodeAnalysis.CSharp

Ответ 6

та же проблема, я установил версию 2.0.1 и скопировал часть web.config из другого проекта, в котором есть 2.0.0, снизил версию до 2.0.0, и теперь она работает нормально

обновлю обратно до 2.0.1 после проверки что все работает

Ответ 7

Щелкните правой кнопкой мыши свой проект >> Управление диспетчером пакетов Nuget для решения >> Нажмите "Обновления" >> Обновите "Microsoft.CodeDom.Providers.DotNetCompilerPlatform" >> и снова запустите проект.