用Visual Studio 2017错误的Cordova构建Windows

Fra*_*ion 10 msbuild cordova visual-studio-cordova

我在为Windows构建新的cordova项目时遇到问题.

我安装了以下版本:

  • cordova@7.0.0,但也可以使用cordova@6.5复制
  • Visual Studio 2017企业版,包含用于Apache Cordova,Windows Mobile Emulator等的工具.
  • 安装了MS Build Tools v14和v15.

所以,重现:

  1. cordova create project1
  2. cd project1
  3. cordova platform add windows
  4. cordova build windows

然后出现以下错误: error MSB4019: The imported project "C:\Program Files (86)\MSBuild\Microsoft\VisualStudio\v14.0\JavaScript\Micros oft.VisualStudio.WJProject.Default.props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk

当我在构建中添加--verbose标志时,我注意到该C:\WINDOWS\system32\reg.exe query,HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\15.0,/v,MSBuildToolsPath命令没有返回成功,因此它使用Build Tools v14而不是v15.

如果我使用Visual Studio 2017创建一个新项目,它在Visual Studio中编译并成功运行,但我在cordova build windows命令上有相同的错误.

我想这是正确的注册表项安装,它会工作正常.我该如何正确添加它们?或者Visual Studio正在做什么,没有使用cordova或taco命令?

小智 15

今天有同样的问题,你指出我正确的方向 - 谢谢!

原因是,cordova构建命令在注册表中查找MSBuild路径,但由于Visual Studio 2017 Microsoft不再在注册表中写入路径(此处更多内容)

作为解决方法,我在注册表中创建了以下密钥(不要忘记更改路径):

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\15.0]
"MSBuildToolsPath"="C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\MSBuild\\15.0\\Bin\\amd64"
Run Code Online (Sandbox Code Playgroud)

之后,cordova构建工作!

另一个解决方案就是安装VS 2015,但在我的情况下,这不是一个选项,因为我在我的应用程序中使用sqlite插件,当前版本只能使用VS 2017 for windows构建.