BuildTasks.Csc task could not be loaded from the a

2019-01-21 17:56发布

问题:

I feel guilty asking a question like this around here, but I'm at a loss and would appreciate some help.

A proof-of-concept like web application was built on one PC and put up on a repo to download on another PC at a different location. There was originally an auto-build feature set up where Azure would build and publish automatically on check-in, but that was removed. Things were working on both ends until one side included a bulk of excluded changes. Now I'm seeing the following error:

The "Microsoft.CodeAnalysis.BuildTasks.Csc" task could not be
loaded from the assembly ...\packages\Microsoft.Net.Compilers.1.0.0\build..\tools\Microsoft.Build.Tasks.CodeAnalysis.dll. Could not load file or assembly 'file:///...\packages\Microsoft.Net.Compilers.1.0.0\tools\Microsoft.Build.Tasks.CodeAnalysis.dll' or one of its dependencies. The system cannot find the file specified. Confirm that the declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask.

Does anyone have any suggestions on where to begin looking for the issue?

回答1:

It turns out that NuGet packages were committed to the repository and breaking everything. Deleting the project\project\packages directory from the repo solved all build problems since NuGet fetches the packages automatically on build.



回答2:

I got this error when I created a new branch for my project.

It drove me crazy for an hour. I tried most of the suggestions over the internet including the accepted answer to this question.

I then closed the project, opened it again, cleaned it and the error is gone. So this means this could be cache issue.

Anyways, just wanted to share.



回答3:

I too tried the top answer with no luck so deleted the contents of my bin and packages dir, closed and re-opened VS and everything fine now.



回答4:

I have tried all solutions described before, but none worked.

What solved it for me, was to update the Microsoft.Net.Compilers from the NuGet Package Manager



回答5:

  • Right-click on your solution.
  • Go to Manage Nuget Packages.
  • Search for Microsoft.Net.Compilers.
  • Install or update on dependent projects as necessary.


回答6:

Re-build, clean solution and restart Visual Studio worked for me.



回答7:

Deleting the package and cleaning the solution solved it for me.



回答8:

Deleting these three directories solves the problem.

  • /packages
  • /bin
  • /obj

NOTE: delete both /bin and /obj from all projects included in the solution (including Test projects).



回答9:

Problem hides on TFS, you need to remove folder TestProject...\packages from TFS, check in, delete it from your local dir and build again. Worked!



回答10:

I delete all from packages folder and rebuild solution. It's worked for me.



回答11:

In my case, the solution was:

Use Windows Explorer and navigate to the offending path: C:\MyApplication\Code\Main\ABCProject\ABCProject.UI\Bin

Right click on bin folder > select properties > Uncheck ReadOnly.



回答12:

In my case: this works for me.

It turns out my teammate had already started looking into Windows 10 development and had Microsoft Build Tools 2015 installed on his machine.

I installed the software from https://www.microsoft.com/en-us/download/details.aspx?id=48159 and the problem was solved.



回答13:

I just tried this on a clean install of a Windows 10 machine and the issue for me ended up being that I didn't have the .NET 3.5 framework installed. This stackoverflow question helps explain why.

Cannot build WIX project on windows 10



回答14:

Right Click on Solution. Go to Manage Nuget Packages for this Solution. Search forMicrosoft.Net.Compilers on Browse Section.



回答15:

In my case, the solution was:

  1. Right Click on Solution.
  2. Go to Manage Nuget Packages for this Solution.
  3. Search for Microsoft.CodeDom.Providers.DotNetCompilerPlatform.
  4. Uninstall the searched Package.
  5. Restart the Visual Studio.


回答16:

Deleting the bin folder worked for me