Не удалось загрузить файл или сборку "System.Security.Principal.Windows"

Решение успешно скомпилировалось, но после добавления в проект существующего файла класса эта ошибка появилась:

Указанный исполняемый файл задачи "csc.exe" не может быть запущен. Не удалось загрузить файл или сборку "System.Security.Principal.Windows, Version = 4.0.1.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a" или одна из его зависимостей. Система не может найти указанный файл. MvcApplicationRegister

Я установил пакет System.Security.Principal.Windows NuGet, но ошибка все же появляется.

Ответ 1

У меня была такая же проблема после обновления Microsoft.Net.Compiler с 2.8.2 до 2.9.0. После того, как я отказался от 2.8.2 проектов, собранных без ошибок.

Ответ 2

Имел эту же проблему и решил ее.

В 3-х решениях проекта MVC контроллер (Web, Business, Data)

Вызывается установкой Microsoft.Net.Compiler 2.9.0 на веб-проект, но не на другие проекты.

Чтобы решить: щелкните правой кнопкой мыши решение. Управление пакетами NuGet. Установлено> Поиск компилятора. Убедитесь, что это одна и та же версия и она установлена во всех проектах в вашем решении.

После установки мое решение было успешно построено

Ответ 3

Ни один из предыдущих ответов не сработал для меня.

Проблема заключалась в том, что у меня не было установлено .NET Compiler Platform SDK.

Чтобы решить эту проблему, откройте установщик Visual Studio, выберите "Изменить" и на вкладке "Invididual Component" проверьте SDK платформы компилятора .NET и подтвердите изменения, нажав "Изменить".

enter image description here

После того, как я установил его и снова открыл Visual Studio, проблема исчезла.

Ответ 4

Если вы используете Microsoft.CodeDom.Providers.DotNetCompilerPlatform вы можете выполнить обновление до 2.x, а затем удалить Microsoft.Net.Compilers как он больше не нужен. Это решило это для меня, однако я даже не мог построить решение в первую очередь. Тем не менее он все еще жаловался на System.Security.Principal.Windows но я мог бы также решить эту проблему, System.Security как сборку. Это не рекомендуется, хотя.

Ответ 5

Я удалил Microsoft.CodeDom.Providers.DotNetCompilerPlatform и Microsoft.Net.Compilers и все теперь работает.

Ответ 6

В моем случае я мог перейти от Microsoft.Net.Compilers 2.4.0 к Microsoft.Net.Compilers 2.10.0. Нет необходимости использовать Microsoft.Net.Compilers 2.8.2.

Ответ 7

Обновление Microsoft.CodeDom.Providers.DotNetCompilerPlatform и удаление Microsoft.Net.Compilers работало для меня.

Ответ 8

Закройте все экземпляры Visual Studio. Затем снова откройте решение и восстановите.

Ответ 9

Я не люблю удалять пакеты без предварительного понимания, что я удаляю. Я столкнулся с той же проблемой с моим решением.

Я обнаружил, что один из многих проектов использует пакет Microsoft.Net.Compilers NuGet - пусть назовем его Project ABC. Проект модульного тестирования ссылался на этот проект ABC, но не на пакет Microsoft.Net.Compilers NuGet.

Я просто ссылался на пакет NuGet для Microsoft.Net.Compilers из моего проекта Unit Test, и теперь проблема исчезла.