【问题标题】:MSB4018 The "CL" task failed unexpectedly in VS2015 EnterpriseMSB4018 VS2015 Enterprise 中的“CL”任务意外失败
【发布时间】:2017-12-04 22:16:40
【问题描述】:

我正在使用 Visual Studio 2015 Enterprise,无法编译 VC++ 项目。

如果我使用默认设置创建一个新的 Visual C++ Win32 控制台应用程序并且根本不进行任何更改,则构建项目会导致此错误 13 次:

MSB4018:“CL”任务意外失败。

有谁知道什么会导致这个错误?

完整的错误文本:

1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(253,5): error MSB4018: The "CL" task failed unexpectedly.
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(253,5): error MSB4018: System.TypeInitializationException: The type initializer for 'Microsoft.Build.Utilities.FileTracker' threw an exception. ---> System.IO.FileNotFoundException: The system cannot find the file specified. (Exception from HRESULT: 0x80070002)
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(253,5): error MSB4018:    at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(253,5): error MSB4018:    at Microsoft.Build.Shared.NativeMethodsShared.ThrowExceptionForErrorCode(Int32 errorCode)
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(253,5): error MSB4018:    at Microsoft.Build.Shared.NativeMethodsShared.GetLongFilePath(String path)
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(253,5): error MSB4018:    at Microsoft.Build.Utilities.FileTracker..cctor()
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(253,5): error MSB4018:    --- End of inner exception stack trace ---
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(253,5): error MSB4018:    at Microsoft.Build.CPPTasks.CL.ComputeOutOfDateSources()
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(253,5): error MSB4018:    at Microsoft.Build.CPPTasks.TrackedVCToolTask.SkipTaskExecution()
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(253,5): error MSB4018:    at Microsoft.Build.Utilities.ToolTask.Execute()
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(253,5): error MSB4018:    at Microsoft.Build.CPPTasks.TrackedVCToolTask.Execute()
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(253,5): error MSB4018:    at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(253,5): error MSB4018:    at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()

我在尝试从 VS 编译的任何 VC++ 项目中都会遇到相同的错误。 (从命令行编译似乎可以工作)

This question about VS 2017 看起来很相似,但似乎从未有人回答过。

我已尝试卸载并重新安装 Visual C++(Visual Studio 2015 功能列表的图像)。

项目创建图片

任何帮助将不胜感激,我对此很迷茫。

【问题讨论】:

  • 找不到kernel32.dll。这很糟糕。嗯,你有一个新的门挡,这是好的一面。
  • 看起来基本有问题,您是否尝试过卸载并重新安装?如果您尝试过但不适合您,请尝试修改 TEMP 和 TMP 环境变量(用户和系统)并将临时目录重新指向其他位置,并将这两个文件夹的权限设置为完全控制。 stackoverflow.com/questions/3221565/…
  • @Leo-MSFT 非常感谢!将用户 TEMP 和 TMP 环境变量更改为具有完全权限的新目录已修复它。
  • @EricS.,很高兴知道对您有帮助。我已将评论转换为答案,您可以将其标记为答案,这样可以帮助遇到相同问题的其他社区成员。

标签: c++ visual-c++ visual-studio-2015 msbuild


【解决方案1】:

MSB4018 “CL”任务在 VS2015 Enterprise 中意外失败

根据错误日志“MSB4018:“CL”任务意外失败。”,看起来基本是错误的,我们可以尝试卸载并重新安装 Visual Studio 来解决这个问题。如果此问题仍然存在,请尝试修改 TEMP 和 TMP 环境变量(用户和系统)并将临时目录重新指向其他位置,并将这两个文件夹的权限设置为完全控制

您可以参考类似问题here

【讨论】:

    【解决方案2】:

    以管理员身份运行 Visual Studio。在 vs 2019 16.8.4 中为我工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-14
      • 2021-03-22
      • 2020-07-18
      • 2021-02-25
      • 1970-01-01
      • 1970-01-01
      • 2023-01-03
      • 2011-10-06
      相关资源
      最近更新 更多