使用Visual Studio 2017为Windows构建Cordova时出错

11

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

我已经安装了以下版本:

  • cordova@7.0.0,但使用cordova@6.5也可以重现此问题
  • Visual Studio 2017企业版,其中包括Apache Cordova工具、Windows Mobile模拟器等。
  • 已安装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命令中没有被执行?

1个回答

16

今天我也遇到了同样的问题,你指引了我正确的方向-谢谢!

造成这个问题的原因是,cordova build 命令在注册表中查找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"

之后,cordova构建成功了!

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接