MSBuild 2017无法构建Cordova解决方案

问题描述 投票:1回答:1

我最近升级了我的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\Professional\Common7\IDE\PrivateAssemblies\Microsoft.VisualStudio.Setup.Engine.dll

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

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

编辑:为了澄清,我正在使用的MSBuild是从https://www.visualstudio.com/downloads/下载的“Visual Studio 2017的构建工具”。

它安装在C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin

我使用的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 \ Mobile-NGC \ NGC.sln

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

这是成功构建日志的行:NodeJsDir = C:\ProgramData\Microsoft\VisualStudio\MDA\8430d60a\taco-toolset-6.3.1

编辑3:看起来失败的构建日志中缺少用于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”

cordova msbuild visual-studio-2017 msbuild-15
1个回答
0
投票

对构建脚本的唯一更改是手动提供MSBuild属性,该属性使用/p:InstanceId=432dc062指示Visual Studio 2017实例

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

您可以通过运行使用vswhere.exe获取当前实例

C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe
© www.soinside.com 2019 - 2024. All rights reserved.