Could not load file or assembly 'System.Security.Principal.Windows'

C# Problem Overview

Solution has compiled successfully, but after I added an existing class file to the project, this error appeared:

> The specified task executable "csc.exe" could not be run. Could not > load file or assembly 'System.Security.Principal.Windows, > Version=, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or > one of its dependencies. The system cannot find the file > specified. MvcApplicationRegister

I installed System.Security.Principal.Windows package By NuGet, but error still appears.

C# Solutions

Solution 1 - C#

None of the previous answers worked for me.

The problem was that I didn't have the .NET Compiler Platform SDK installed.

To solve, open Visual Studio Installer, choose "Modify", and under the "Invididual Component" tab, check the .NET Compiler Platform SDK, and confirm your changes by clicking "Modify".

enter image description here

After I installed it and reopened Visual Studio, the problem is gone.

Solution 2 - C#

I had the same issue after I upgraded Microsoft.Net.Compiler from 2.8.2 to 2.9.0. After I downgraded to 2.8.2 projects compiled without any errors.

Solution 3 - C#

Had this same issue and resolved it.

In a 3 project solution MVC controller (Web,Business,Data)

Caused by the Microsoft.Net.Compiler 2.9.0 being installed on the Web project but not the other projects.

To resolve: Right click the solution. Manage NuGet Packages. Installed > Search for the compiler Ensure it is the same version and it is installed on all projects in your solution

Once installed my solution built successfully

Solution 4 - C#

If you are using Microsoft.CodeDom.Providers.DotNetCompilerPlatform you can upgrade to 2.x and then remove Microsoft.Net.Compilers as it's no longer needed. That solved it for me, however I couldn't even build the solution in the first place. It was still complaining about System.Security.Principal.Windows though, I could also solve it by referencing System.Security as an assembly. It's not recommended though.

Solution 5 - C#

Close down all instances of Visual Studio. Then reopen the solution and rebuild.

Solution 6 - C#

I uninstalled both Microsoft.CodeDom.Providers.DotNetCompilerPlatform and Microsoft.Net.Compilers and everything now works.

Solution 7 - C#

In my case I could go from Microsoft.Net.Compilers 2.4.0 to Microsoft.Net.Compilers 2.10.0. No need to use Microsoft.Net.Compilers 2.8.2.

Solution 8 - C#

I do not like removing packages without first understanding what I'm removing. I faced the same problem with my solution.

I discovered that 1 of the many projects was using the Microsoft.Net.Compilers NuGet package - let's call it Project ABC. A Unit Test project was referencing that Project ABC, but not the Microsoft.Net.Compilers NuGet package.

I simply referenced the Microsoft.Net.Compilers NuGet package from my Unit Test project, and the problem has now gone away.

Solution 9 - C#

Updating Microsoft.CodeDom.Providers.DotNetCompilerPlatform and deleting Microsoft.Net.Compilers worked for me.


All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMohammad SadeghiView Question on Stackoverflow
Solution 1 - C#MMalkeView Answer on Stackoverflow
Solution 2 - C#SynthieView Answer on Stackoverflow
Solution 3 - C#RichardView Answer on Stackoverflow
Solution 4 - C#OskarView Answer on Stackoverflow
Solution 5 - C#user5481197View Answer on Stackoverflow
Solution 6 - C#Lee TickettView Answer on Stackoverflow
Solution 7 - C#OgglasView Answer on Stackoverflow
Solution 8 - C#Huw RobertsView Answer on Stackoverflow
Solution 9 - C#benjaminoerskovView Answer on Stackoverflow