【问题标题】:MSBuild 2017 failing to build Cordova solutionMSBuild 2017 无法构建 Cordova 解决方案
【发布时间】:2018-03-08 01:06:38
【问题描述】:

我最近升级了我的 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/ 下载的“Build Tools for 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

编辑2: 在将失败的 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"

【问题讨论】:

  • “MSBuild 2017”是什么意思?是 VS 2017 工具的开发人员命令提示符还是从 C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin 调用 MSBuild.exe?您介意与我分享您的构建命令吗?您可以尝试创建一个新的空白cordova项目,将脚本复制到新项目中,然后检查它是否工作正常。
  • 它是来自:C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin 的 MSBuild 我从 visualstudio.com/downloads“Build Tools for Visual Studio 2017 下载的” "
  • 感谢您的回复。由于您已经在您的机器上安装了 Visual Studio Professional 2017,请尝试从以下位置使用 MSBuild:C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin。检查它是否工作正常。如果没有,请在此处分享构建日志。
  • 谢谢利奥。从命令行使用 Visual Studio Professional 2017 的 MSBuild 时,我仍然遇到同样的问题。我已将输出日志保存到此处:gist.github.com/callum-spartan/7d84461698a52336fc2d732d8eda6db6
  • 我注意到日志显示它仍在使用其他 MSBuild.exe:MSBUILDDIR = C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin MSBUILDEXE = C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBUILD.exe

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


【解决方案1】:

对我有用的是 转到工具-> 扩展和更新 查找“用于 Apache cordova 的视觉工作室工具” 重新安装或启用它。 重新启动视觉工作室。你又回到了正轨

【讨论】:

    【解决方案2】:

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

    VS2017 更新后此实例 id 会发生变化,因此您应该在此之后手动更新构建脚本。

    你当前的实例可以使用vswhere.exe通过运行获得

    C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-16
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 2013-08-15
    • 2011-09-09
    相关资源
    最近更新 更多