[MSCE C++] bmake -a 错误

我在安装完MS CE U12和U12的SDK ,VS2017后,按照配置打开SDK后,bamke -a出现以下错误提示,请问怎么解决?

BMAKE: Error - Cannot find the .Net tools location for this toolset. VS2017_DotNetToolsDir was not defined, and registry lookup failed.

BMAKE: Error - Cannot find the .Net tools location for this toolset. VS2017_DotNetToolsDir was not defined, and registry lookup failed.
BMAKE: call trace
line: 96, C:\PROGRA~1\Bentley\MICROS~2\mki\VCVarsQueryRegistry2017.mki
line: 960, C:\PROGRA~1\Bentley\MICROS~2\mki\AssertToolSet.mki
line: 114, C:\PROGRA~1\Bentley\MICROS~2\mki\ConfigurePolicy.mki
line: 26, C:\PROGRA~1\Bentley\MICROS~2\mki\mdl.mki
line: 22, C:\PROGRA~1\Bentley\MICROS~2\examples\DialogBoxes\myapp\myapp.mke

Parents Reply
  • 我今天也遇到了同样的问题,参考了上面方法也没有解决。我发现并解决问题的思路如下:

    No1:  我最开始是百度和在优先社区查询了红色部分提示,找到这篇blog,但还是没用解决问题。

    No2: 解决思路》》在同事指导下,从line: 96, c:\PROGRA~1\Bentley\MICROS~2\mki\VCVarsQueryRegistry2017.mki这一行入手,作为程序出错第一次出现的地方,我打开了VCVarsQueryRegistry2017.mki文件(该文件是已经用本blog中提供的文件替换过),如下图,同时打开了注册表。发现.mki文件要求的SDK版本是4.6.2,但是注册表只有4.6.1 (我前面已经写入了import.reg)。这时我才发现安装VS2017(community版本)时,没用安装.NET Framework SDK 4.6.2,故在VS2017安装程序中修改添加该版本组件。

    No3: 当以为大功告成,后续又出现一个问题…… 如下图 error : unexpected end of file in preprocessor

    按照上步解决思路,定位在54行,是一行空行,懵圈了一会,最后还是在同事的帮助下,在文件最后一行加了一行空行,才成功解决。(不知道是不是语法就应该这样写,有些行后需要加空行结束)

    本程序是在社区的一步一步学习https://communities.bentley.com/communities/other_communities/bdn_other_communities/w/chinabdn-wiki/41035/c-cli-addins  全部复制粘贴的。

    第一次在社区提交问题,希望对遇到同样问题的人有帮助!

Children
  • 非常感谢您的分享。

    MSCE SDK所需用的.NET Framekwork版本本身也是在不断升级中的,原来是用过4.6.1的。

    另外,mke文件最后是需要一个回车的。由于论坛中贴了带有回车的空行会被自动删除。我会在该文章处做个注释,以免后续用户遇到同样的困难。同时,该文章的尾部贴有完整的源代码压缩包,里面的mke文件是正确的。