无法从程序集中加载BuildTasks.Csc任务?

103

我很抱歉在这里问这样的问题,但是我无助了,希望能得到一些帮助。

一个类似概念验证的Web应用程序在一台PC上构建,并放到另一台位于不同位置的PC上下载。最初设置了自动构建功能,Azure会在提交时自动构建和发布,但已被删除。在两端都正常工作,直到其中一侧包含了大量排除的更改,现在我看到以下错误:

无法从程序集 ...\packages\Microsoft.Net.Compilers.1.0.0\build..\tools\Microsoft.Build.Tasks.CodeAnalysis.dll中加载“Microsoft.CodeAnalysis.BuildTasks.Csc”任务。 无法加载文件或程序集 'file:///...\packages\Microsoft.Net.Compilers.1.0.0\tools\Microsoft.Build.Tasks.CodeAnalysis.dll' 或它的某个依赖项。系统找不到指定的文件。 确认声明正确,程序集及其所有依赖项都可用,并且任务包含实现Microsoft.Build.Framework.ITask的公共类。

有人有任何建议可以开始寻找问题?


尝试使用此解决方案:https://kx.cloudingenium.com/programming/net/resolved-microsoft-codeanalysis-buildtasks-csc-task-not-loaded-assembly/ - Pramod Sutar
21个回答

122

原来NuGet软件包被提交到代码库并且导致了一切的崩溃。从代码库中删除project\project\packages目录可以解决所有构建问题,因为NuGet会在构建时自动获取软件包。


1
请确保在VSTS中包含实际的“packages”文件夹以及其内容...我只包含了“packages”的内容,结果出现了错误。 - SteveC
2
我在所有项目中都提交了NuGet包。唯一的问题是,当您想将它们添加到源代码控制时,默认情况下*.dll文件是“排除项”,因此您只提交空目录而不是您的NuGet包。这就是为什么即使还原NuGet也无法帮助,因为目录已经存在,所以NuGet认为一切都很好。 - Jiří Herník
1
类似的线程解决方案可以在这里找到:https://kx.cloudingenium.com/programming/net/resolved-microsoft-codeanalysis-buildtasks-csc-task-not-loaded-assembly/ - Pramod Sutar
1
我不知道为什么这个有效... 是什么原因? - Richard Duerr
这对我起作用了,但似乎微软在像这样的事情上可以做得更好! - JosephDoggie

73

在我创建项目的新分支时,出现了这个错误。

这让我疯了一个小时。我尝试了互联网上大多数建议,包括这个问题的接受答案。

然后我关闭了项目,再次打开它,并进行了清理,错误就消失了。所以这意味着可能是缓存问题。

无论如何,只是想分享一下。


7
谢谢!对我来说,首先是包文件夹出了问题。然后,我仍然遇到了错误,但重启 VS 能解决 :) - dsnunez

39

我也尝试了排名最靠前的答案,但没有成功,所以我删除了我的垃圾桶和packages文件夹的内容,关闭并重新打开VS,现在一切都正常了。


2
这个帮了我。我尝试在 Parallels 中使用 VS 2015 运行一个现有的 ASP.NET 项目,但是它给了我上面的错误。删除 'bin' 和 'packages' 文件夹,重新启动 VS 并进行清理构建就解决了问题! - A3mercury

20

我尝试了之前提到的所有解决方案,但都没有起作用。

对我有帮助的方法是从NuGet包管理器中更新Microsoft.Net.Compilers


3
我遇到了相反的问题。我太过乐观,下载了最新的RC版本。当我恢复到最新的稳定版本时,就没事了。 - Cool Blue
2
我从2.8升级到3.1.1,问题得到了解决。谢谢! - Dan Csharpster

19
  • 右键单击您的解决方案。
  • 转到管理 Nuget 包。
  • 搜索 Microsoft.Net.Compilers
  • 如有必要,在依赖项目上安装或更新。

2
值得注意的是,此软件包现已被弃用。请改用 Microsoft.Net.Compilers.Tools。 - Michiel Cornille

7
重新构建、清理解决方案并重新启动Visual Studio对我有用。

2
是的,我也遇到了同样的问题,但仅仅重启VS还不够——我必须重新启动电脑,然后才能解决。 - Billious
1
重启电脑解决了问题。不确定是否需要进行所有清理和重新安装NuGet包。 - Don Rolling

6
删除包并清理解决方案对我有帮助。

5

删除这三个目录可以解决问题。

  • /packages(软件包)
  • /bin(二进制文件)
  • /obj(对象文件)

注意:从解决方案中的所有项目(包括测试项目)中删除/bin和/obj。


5

请按照以下步骤操作:

1) 删除包文件夹。
2) 关闭 Visual Studio。
3) 打开项目并重新构建项目。


4

问题出现在TFS上,你需要从TFS中删除文件夹TestProject...\packages,并进行检入操作,然后从本地目录中删除它并重新构建即可。这样做可以解决问题!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接