英特尔编译器 18.0 工具集使用 msbuild 引发异常

Intel Compiler 18.0 Toolset raises exception with msbuild

我重新安装了我的机器并安装了 Visual Studio 2017Visual Studio 2019 (Preview)Intel Compiler 18。由于未知原因,我的项目不再运行,我也不知道是什么原因造成的。有没有人遇到过以下错误消息?

我的项目使用 Intel C++ Compiler 18.0 工具集。

Visual Studio 2017年错误信息:

1>C:\Program Files (x86)\Microsoft Visual Studio17\Professional\VC\Tools\MSVC.16.27023\include\xmemory0(178):
error : identifier "__STDCPP_DEFAULT_NEW_ALIGNMENT__" is undefined
1>      enable_if_t<(!_HAS_ALIGNED_NEW || _Align <=
__STDCPP_DEFAULT_NEW_ALIGNMENT__), int> = 0> inline

Visual Studio 2019(预览版)错误消息

1>C:\Program Files (x86)\Microsoft Visual Studio17\Professional\Common7\IDE\VC\VCTargets\Platforms\x64\PlatformToolsets\Intel C++ Compiler 18.0\Toolset.targets(150,5):
error MSB4062: The "ICMessage" task could not be loaded from the assembly C:\Program Files %28x86%29\Microsoft Visual Studio17\Professional\Common7\IDE\VC\VCTargets\Intel.Build.ICLTasks.v150.dll.
Could not load file or assembly 'file:///C:\Program Files %28x86%29\Microsoft Visual Studio17\Professional\Common7\IDE\VC\VCTargets\Intel.Build.ICLTasks.v150.dll' or one of its dependencies.
The system cannot find the file specified.
Confirm that the <UsingTask> 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.

在重新安装之前,我的项目运行良好。有人知道这里发生了什么吗?

The system cannot find the file specified.

1.Check路径C:\Program Files (x86)\Microsoft Visual Studio17\xxx\Common7\IDE\VC\VCTargets中是否存在Intel.Build.ICLTasks.v150.dll。根据报错信息是没有的,所以我猜Intel Compiler 18没有安装成功。

注意recommended order安装是:安装VS成功,然后安装英特尔编译器。如果在安装VS2017之前先安装英特尔编译器,会出现问题

例如:安装VS后,当我安装Intel Parallel Studio时,它会下载几个文件和程序集到文件夹C:\Program Files (x86)\Microsoft Visual Studio17\Community\Common7\IDE\VC\VCTargets以备将来开发。所以如果我在安装 VS 之前安装 Intel 编译器,我在那里找不到 Intel.Build.ICLTasks.v150.dll

2.And 对于您在 VS2017 中的原始错误消息,我建议您将您的英特尔编译器更新到 2019 Update3 及更高版本,请参阅 versions。当您重新安装 VS 时,安装程​​序将下载最新的 15.9.16 版本(比您的旧版本更新),因此您还需要升级您的 Intel 编译器版本以解决一些冲突。