Reputation: 711
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=4.0.1.0, 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.
Upvotes: 61
Views: 34125
Reputation: 292
I had the same issue here using 'System.Security.Principal.Windows' version 4.7.0. For some reason when I installed the nuget package it was referecing the dll from the folder: C:\Users\{your-user}\.nuget\packages\system.security.principal.windows\4.7.0\ref\netstandard2.0\System.Security.Principal.Windows.dll then I changed to reference the dll from the folder C:\Users\{your-user}\.nuget\packages\system.security.principal.windows\4.7.0\lib\netstandard2.0\System.Security.Principal.Windows.dll and everything worked just fine! So I copied the dll from the lib folder to my project and made a direct reference.
Upvotes: 0
Reputation: 316
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.
Upvotes: 1
Reputation:
Close down all instances of Visual Studio. Then reopen the solution and rebuild.
Upvotes: 8
Reputation: 240
Updating Microsoft.CodeDom.Providers.DotNetCompilerPlatform
and deleting Microsoft.Net.Compilers
worked for me.
Upvotes: 0
Reputation: 2106
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".
After I installed it and reopened Visual Studio, the problem is gone.
Upvotes: 37
Reputation: 69958
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
.
Upvotes: 4
Reputation: 6027
I uninstalled both Microsoft.CodeDom.Providers.DotNetCompilerPlatform
and Microsoft.Net.Compilers
and everything now works.
Upvotes: 4
Reputation: 2083
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.
Upvotes: 11
Reputation: 391
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
Upvotes: 15
Reputation: 361
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.
Upvotes: 36