Ответ 1
У меня была такая же проблема с Visual Studio 2015 Update 2, чтобы решить проблему в глобальном масштабе для всех решений, обновить до Обновление Visual Studio 2015 3. Вот ссылка: Загрузить здесь
Обновление произошло прошлой ночью, и теперь я не могу сделать ctrl + '.' для предложений кода в VS 2015. Появляется сообщение об ошибке:
Не удалось загрузить файл или сборку "Microsoft.CodeAnalysis, version = 1.3.1.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35" или одну из его зависимостей. Система не может найти указанный файл.
Я все еще могу строить и развивать, но это будет очень раздражать без этой функции. Я признаю это, я становлюсь мягким!
У кого-нибудь есть предложение по исправлению этой ошибки?
У меня была такая же проблема с Visual Studio 2015 Update 2, чтобы решить проблему в глобальном масштабе для всех решений, обновить до Обновление Visual Studio 2015 3. Вот ссылка: Загрузить здесь
Как указано @CaptainAmerica, решение заключается в обновлении сборки CodeDom от NuGet. Следует отметить, как это сделать в Visual Studio. Я нашел решение здесь:
https://www.nuget.org/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform/
В основном, в меню Visual Studio выберите:
Tools-> Nuget Package Manager -> Package Manager Console
В консоли, которая появляется в нижней части Visual Studio, выполните следующую команду:
Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
Если какой-либо из параметров не работает, вот подробное руководство для обработки этого сценария....
В первую очередь важна версия. Обратите внимание на версию, указанную в ошибке...
Could not load file or assembly 'Microsoft.CodeAnalysis, version= 1.3.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
Если вы видите ошибку выше, это означает, что она не может найти версию 1.3.1. Теперь создайте новый проект VS. Никаких предпочтений, это может быть просто консольное приложение. Теперь, когда шаблон проекта готов, перейдите в диспетчер пакетов и выполните следующую команду с указанной вами версией...
Install-Package Microsoft.CodeAnalysis -Version 1.3.1
Это установит все пакеты. Пусть это закончится. Как только это будет сделано. Нам не нужен этот недавно созданный проект. Вы можете удалить его полностью. Шутки в сторону! вы можете удалить его. Мы сделали это, потому что хотели, чтобы этот пакет был установлен на глобальном уровне nuget. Когда вы устанавливаете что-то, nuget сохраняет его на глобальном уровне вашей машины. Путь будет что-то вроде этого...
C:\Users\<<Your Windows User>>\.nuget\packages
Вы можете узнать свой путь, следуя...
%USERPROFILE%\.nuget\packages
Теперь вы увидите требуемую Microsoft.CodeAnalysis.dll в следующей папке...
C:\Users\<<Your Windows User>>\.nuget\packages\Microsoft.CodeAnalysis.Common\1.3.1\lib\net45
Обратите внимание, что указанный выше путь содержит номер версии (1.3.1). Если ваша версия отличается, посмотрите на эту версию.
Теперь, когда у вас есть dll с вами, все, что вам нужно сделать, это добавить эту dll в GAC. Для этого вам понадобится GacUtil.exe
Этот файл уже установлен вместе с Visual Studio. Вы можете искать "GacUtil" на диске C. Для меня это там по ниже пути...
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools
Теперь запустите командную строку в качестве администратора и перейдите к текущему каталогу на свой путь, содержащий GacUtil. Запустите команду ниже, чтобы установить эту DLL в GAC.
gacutil
-i C:\Users\<<You Windows User>>\.nuget\packages\Microsoft.CodeAnalysis.Common\1.3.1\lib\net45\Mi
crosoft.CodeAnalysis.dll
В основном предоставляем путь к dll, который мы установили глобально. Он покажет сообщение об успешной установке.
Это все! Теперь запустите свою Visual Studio еще раз, и вы устраните эту проблему.
Я нашел эту страницу и в нижней части страницы в разделе "Совместимость с ASP.NET" говорится, что ASP.NET использует nuget пакет Microsoft.CodeDom.Providers.DotNetCompilerPlatform для обновления сборок Microsoft.CodeAnalysis. Поэтому я обновил пакет DotNetCompilerPlatform с 1.0.0 до 1.0.3, и он снова работает! Да, жизнь снова хороша!
Чтобы решить эту проблему для всех решений, мне нужно было установить сборку Microsoft.CodeAnalysis.dll непосредственно в кэш GAC - Global Assemblies Cache.
Я получил файл Microsoft.CodeAnalysis.dll от C:/Users/[user]/. nuget/packages/Microsoft.CodeAnalysis.Common/1.3.2/lib/portable-net45 + win8/Microsoft.CodeAnalysis.dll.
Чтобы установить сборку в GAC, я использовал PowerShell script из https://github.com/LTruijens/powershell-gac.
Наконец, мне удалось установить сборку в GAC с помощью следующей команды от PowerShell:
Add-GacAssembly [myPath]\Microsoft.CodeAnalysis.dll
У меня тоже была такая же проблема. Моя версия visual studio 2015 была 2.0. Я обновил его до версии 3.
Проблема решена!!!
Я решил проблему таким образом:
Обновить Visual Studio 2015 до Обновить 3
в меню выберите Просмотр = > Уведомления = > Обновление Visual Studio 3 и нажмите кнопку обновления.
Я исправил эту проблему, обновив все зависимости Nuget Microsoft до версии 2.0. Это использовало VS 2017. Я использовал предварительную версию.
В моем случае ошибка произошла после выключения Live Unit Testing и запуска тестов вручную. Некоторые тесты завершатся неудачно с приведенным выше сообщением об ошибке.
Переход в Test → Live Unit Testing → Options и выдача "Delete Persisted Data" решил проблему.
Я исправил подобную проблему, удалив папку .vs, расположенную внутри решения.
Я обнаружил отсутствующие сборки в пакете NuGet (после разрешения первой было несколько других): https://www.nuget.org/packages/Microsoft.Net.Compilers/1.3.1-rc
Устанавливал их, используя GacUtil из консоли Dev.
К сожалению, обширное решение с "nuget install/gacutil" здесь выше не могло работать, так как точная версия dll зависимости не была доступна.
Следующее решение моей проблемы в нашем сложном приложении веб-формы заключалось в выполнении в решении в Visual Studio → Инструменты → Nuget → Диспетчер консольных пакетов.
Update-Package -reinstall
В моем случае я получал эту ошибку, потому что мое решение Visual Studio пыталось использовать TextTransform.exe
во время этапа предварительной сборки в одном из проектов, но на моей локальной машине не было TextTransform.exe
по пути, указанному в Мой шаг перед сборкой и моя первая попытка исправить это было просто скопировать TextTransform.exe
из какого-то другого места, где ожидала Visual Studio. Похоже, это вызвало эту проблему, потому что TextTransform.exe
имеет другие тихие зависимости.
Мое исправление состояло в том, чтобы изменить этапы предварительной сборки, чтобы вместо поиска файла в
C:\Program Files (x86)\Common Files\microsoft shared\TextTemplating\14.0\TextTransform.exe
вместо этого он посмотрел бы в папку установки Visual Studio, в которой было множество других файлов, предположительно один из которых был зависимостью от равноправного узла TextTransform.exe
C:\Program Files\Visual Studio\Common7\IDE\TextTransform.exe
Это, казалось, исправило вещи для меня.