Ответ 1
У меня была такая же проблема после обновления Microsoft.Net.Compiler с 2.8.2 до 2.9.0. После того, как я отказался от 2.8.2 проектов, собранных без ошибок.
Решение успешно скомпилировалось, но после добавления в проект существующего файла класса эта ошибка появилась:
Указанный исполняемый файл задачи "csc.exe" не может быть запущен. Не удалось загрузить файл или сборку "System.Security.Principal.Windows, Version = 4.0.1.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a" или одна из его зависимостей. Система не может найти указанный файл. MvcApplicationRegister
Я установил пакет System.Security.Principal.Windows
NuGet, но ошибка все же появляется.
У меня была такая же проблема после обновления Microsoft.Net.Compiler с 2.8.2 до 2.9.0. После того, как я отказался от 2.8.2 проектов, собранных без ошибок.
Имел эту же проблему и решил ее.
В 3-х решениях проекта MVC контроллер (Web, Business, Data)
Вызывается установкой Microsoft.Net.Compiler 2.9.0 на веб-проект, но не на другие проекты.
Чтобы решить: щелкните правой кнопкой мыши решение. Управление пакетами NuGet. Установлено> Поиск компилятора. Убедитесь, что это одна и та же версия и она установлена во всех проектах в вашем решении.
Ни один из предыдущих ответов не сработал для меня.
Проблема заключалась в том, что у меня не было установлено .NET Compiler Platform SDK.
Чтобы решить эту проблему, откройте установщик Visual Studio, выберите "Изменить" и на вкладке "Invididual Component" проверьте SDK платформы компилятора .NET и подтвердите изменения, нажав "Изменить".
После того, как я установил его и снова открыл Visual Studio, проблема исчезла.
Если вы используете Microsoft.CodeDom.Providers.DotNetCompilerPlatform
вы можете выполнить обновление до 2.x, а затем удалить Microsoft.Net.Compilers
как он больше не нужен. Это решило это для меня, однако я даже не мог построить решение в первую очередь. Тем не менее он все еще жаловался на System.Security.Principal.Windows
но я мог бы также решить эту проблему, System.Security
как сборку. Это не рекомендуется, хотя.
Я удалил Microsoft.CodeDom.Providers.DotNetCompilerPlatform
и Microsoft.Net.Compilers
и все теперь работает.
В моем случае я мог перейти от Microsoft.Net.Compilers 2.4.0
к Microsoft.Net.Compilers 2.10.0
. Нет необходимости использовать Microsoft.Net.Compilers 2.8.2
.
Обновление Microsoft.CodeDom.Providers.DotNetCompilerPlatform
и удаление Microsoft.Net.Compilers
работало для меня.
Закройте все экземпляры Visual Studio. Затем снова откройте решение и восстановите.
Я не люблю удалять пакеты без предварительного понимания, что я удаляю. Я столкнулся с той же проблемой с моим решением.
Я обнаружил, что один из многих проектов использует пакет Microsoft.Net.Compilers NuGet - пусть назовем его Project ABC. Проект модульного тестирования ссылался на этот проект ABC, но не на пакет Microsoft.Net.Compilers NuGet.
Я просто ссылался на пакет NuGet для Microsoft.Net.Compilers из моего проекта Unit Test, и теперь проблема исчезла.