MSBuild 2017无法构建Cordova解决方案

时间:2017-09-26 17:39:45

标签: cordova msbuild visual-studio-2017 msbuild-15

我最近升级了我的Cordova解决方案,以便与Visual Studio 2017一起使用。我能够在Visual Studio Professional 2017 IDE中成功构建Android APK。

当我尝试从命令行使用MSBuild 2017构建解决方案时,收到以下错误:

  

MSBUILD:cordova-build错误BLDErr_Build_ExceptionLookingForNode:无法确定Node.js安装的位置。例外:无法加载文件或程序集' Microsoft.VisualStudio.Setup.Engine,Version = 1.0.0.0,Culture = neutral,Pu blicKeyToken = b03f5f7f11d50a3a'或其中一个依赖项。该系统找不到指定的文件。 [C:\ dev的\共同\源\移动-NGC \ PhalanxNGC.jsproj]

我在使用Node.js v4.8.4和v6.11.3以及32位和64位版本时尝试过但没有成功。

我还查找了Microsoft.VisualStudio.Setup.Engine.dll,我可以在IDE目录中找到它: C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin

我无法在MSBuild目录下找到它。

任何帮助将不胜感激。 感谢。

编辑:为了澄清,我正在使用的MSBuild是" Visual Studio 2017的构建工具"从here下载。

它安装在NodeJsDir = C:\ProgramData\Microsoft\VisualStudio\MDA\8430d60a\taco-toolset-6.3.1

我使用的MSBuild命令是:

  

C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ BuildTools \ MSBuild \ 15.0 \ Bin \ MSBUILD.exe / nologo / p:Configuration = Debug / verbosity:diag C:\ dev \ Common \ Source \移动NGC \ NGC.sln

EDIT2 : 在将失败的MSBuild CLI输出与成功的IDE构建输出进行比较后,我可以看到未针对失败的CLI MSBuild记录属性NodeJsDir。

这是成功构建日志的行: http://{{url}}/Host?hostInfo.host_name=Test&hostInfo.host_zipcode=123&hostInfo.host_id=123

EDIT3 : 看起来失败的构建日志中缺少用于Apache Cordova的工具的其他环境变量。其中包括:NODEJSDIR,NPMINSTALLDIR,LANGNAME,BUILDVERBOSITY,GIT_HOME。

更新: 我已将此报告给Microsoft支持,现在将其记录为问题。目前的解决方法是使用命令行中的devenv进行构建:

  

C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ Common7 \ IDE \ devenv.com [PathToCordovaSolution]" Debug | Android"

2 个答案:

答案 0 :(得分:0)

您构建脚本的唯一更改是手动提供MSBuild属性,该属性使用/p:InstanceId=432dc062

指示Visual Studio 2017实例

此实例ID将在VS2017更新后更改,因此您应该在此之后手动更新构建脚本。

您可以通过运行

使用vswhere.exe获取当前实例
C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe

答案 1 :(得分:0)

对我有用的是 转到工具->扩展和更新 查找“适用于Apache Cordova的Visual Studio工具” 重新安装或启用它。 重新启动Visual Studio。并且您回到了正轨