为 Windows 构建 Cordova,出现 Visual Studio 2017 错误
Cordova build for Windows with Visual Studio 2017 error
我在为 Windows 构建新的 cordova 项目时遇到问题。
我安装了以下版本:
- cordova@7.0.0,不过用cordova@6.5也可以复现
- Visual Studio 2017 Enterprise,带有 Apache Cordova 工具、Windows 移动模拟器等。
- 已安装 MS 构建工具 v14 和 v15。
因此,要重现:
cordova create project1
cd project1
cordova platform add windows
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.0,/v,MSBuildToolsPath
命令没有 return 成功,因此它使用构建工具 v14 而不是 v15。
如果我用 Visual Studio 2017 创建一个新项目,它会在 Visual Studio 内成功编译 & 运行,但我在 cordova build windows
命令上有同样的错误。
我想如果安装了正确的注册表项,它会正常工作。我应该如何正确添加它们?或者 Visual Studio 正在做什么而 cordova 或 taco 命令没有做?
今天遇到了同样的问题,您为我指出了正确的方向 - 谢谢!
原因是,cordova build 命令在注册表中查找 MSBuild 路径,但自 Visual Studio 2017 以来,Microsoft 未写入该路径在注册表中(更多关于此 here)
作为解决方法,我在注册表中创建了以下键(不要忘记更改路径):
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions.0]
"MSBuildToolsPath"="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\amd64"
在那之后,cordova 构建成功了!
另一种解决方案是只安装 VS 2015,但在我的情况下,这不是一个选项,因为我在我的应用程序中使用了 sqlite 插件,而当前版本只能使用 VS 2017 构建 windows.
我在为 Windows 构建新的 cordova 项目时遇到问题。
我安装了以下版本:
- cordova@7.0.0,不过用cordova@6.5也可以复现
- Visual Studio 2017 Enterprise,带有 Apache Cordova 工具、Windows 移动模拟器等。
- 已安装 MS 构建工具 v14 和 v15。
因此,要重现:
cordova create project1
cd project1
cordova platform add windows
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.0,/v,MSBuildToolsPath
命令没有 return 成功,因此它使用构建工具 v14 而不是 v15。
如果我用 Visual Studio 2017 创建一个新项目,它会在 Visual Studio 内成功编译 & 运行,但我在 cordova build windows
命令上有同样的错误。
我想如果安装了正确的注册表项,它会正常工作。我应该如何正确添加它们?或者 Visual Studio 正在做什么而 cordova 或 taco 命令没有做?
今天遇到了同样的问题,您为我指出了正确的方向 - 谢谢!
原因是,cordova build 命令在注册表中查找 MSBuild 路径,但自 Visual Studio 2017 以来,Microsoft 未写入该路径在注册表中(更多关于此 here)
作为解决方法,我在注册表中创建了以下键(不要忘记更改路径):
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions.0]
"MSBuildToolsPath"="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\amd64"
在那之后,cordova 构建成功了!
另一种解决方案是只安装 VS 2015,但在我的情况下,这不是一个选项,因为我在我的应用程序中使用了 sqlite 插件,而当前版本只能使用 VS 2017 构建 windows.