我最近升级了我的 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,版本=1.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。该系统找不到指定的文件。[C:\dev\Common\Source\Mobile-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
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"