2017-09-26 125 views
0

我最近升級了我的科爾多瓦解決方案以使用Visual Studio 2017.我能夠在Visual Studio Professional 2017 IDE中成功構建Android APK。MSBuild 2017未能構建科爾多瓦解決方案

當我嘗試建立使用2017年的MSBuild在命令行的解決方案,我收到以下錯誤:

MSBUILD : cordova-build error BLDErr_Build_ExceptionLookingForNode: Unable to determine location of Node.js installation. Exception: Could not load file or assembly 'Microsoft.VisualStudio.Setup.Engine, Version=1.0.0.0, Culture=neutral, Pu blicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. [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比較構建輸出後,我可以看到該屬性NodeJsDir沒有記錄失敗的CLI MSBuild。

這是從成功生成日誌行: 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"

+0

獲得你是什麼意思 「的MSBuild 2017年」?是Developer Command Prompt for VS 2017工具或從C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Enterprise \ MSBuild \ 15.0 \ Bin中調用MSBuild.exe?你介意與我分享你的構建命令嗎?您可以嘗試創建一個新的空白cordova項目,將腳本複製到新項目中,然後檢查它是否正常工作。 –

+0

這是MSBuild從:C:\ Program Files文件(x86)\ Microsoft Visual Studio \ 2017 \ BuildTools \ MSBuild \ 15.0 \斌 我從https://www.visualstudio.com/downloads/下載它「Build Tools for Visual Studio 2017「 – Callum

+0

感謝您的回覆。由於您的計算機上安裝了Visual Studio Professional 2017,請嘗試使用MSBuild:C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild \ 15.0 \ Bin。檢查它是否正常工作。如果沒有,請在這裏分享生成日誌。 –

回答

0

你構建腳本的唯一改變是手動提供的MSBuild屬性,它表明,在使用/p:InstanceId=432dc062

這個實例ID的Visual Studio 2017年實例將在VS2017更新後更改,因此您應該手動更新構建腳本。

您當前的實例可以使用vswhere.exe運行

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

感謝您的回覆。我與Microsoft支持人員通信,現在它已記錄爲已知問題。我會用臨時工作來更新我的問題。 – Callum

+0

我也在開發人員社區網站上提供解決方法 https://developercommunity.visualstudio.com/content/problem/155613/build-new-cordova-project-with-msbuild-results-in.html 所以也許這也有幫助。 – codevision