2017-09-26 2 views
0

J'ai récemment mis à niveau ma solution Cordova pour qu'elle fonctionne avec Visual Studio 2017. Je suis en mesure de générer avec succès des fichiers APK Android à partir de l'IDE de Visual Studio Professional 2017.MSBuild 2017 ne parvient pas à créer la solution Cordova

Lorsque je tente de construire la solution en utilisant MSBuild 2017 à partir de la ligne de commande, je reçois l'erreur suivante:

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]

Je l'ai essayé lors de l'utilisation Node.js v4.8.4 et v6.11.3, comme ainsi que les versions 32 bits et 64 bits, mais sans succès.

J'ai aussi cherché le Microsoft.VisualStudio.Setup.Engine.dll et je peux le trouver dans le répertoire IDE: C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\PrivateAssemblies\Microsoft.VisualStudio.Setup.Engine.dll

Je suis incapable de le trouver dans le répertoire MSBuild.

Toute aide serait appréciée. Merci.

Modifier: Pour clarifier, le MSBuild que j'utilise est le "Build Tools pour Visual Studio 2017" téléchargé de https://www.visualstudio.com/downloads/.

Il est installé dans C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin

La commande MSBuild J'utilise est:

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: Après avoir comparé l'échec sortie MSBuild CLI avec l'IDE réussi à construire la sortie, je peux voir que la propriété NodeJsDir n'est pas enregistrée pour le MSBuild CLI échoué.

Ceci est la ligne du journal réussie de construction: NodeJsDir = C:\ProgramData\Microsoft\VisualStudio\MDA\8430d60a\taco-toolset-6.3.1

Edit3: Il semble que d'autres variables d'environnement pour outils pour Apache Cordova sont manquants dans le journal de la construction d'échec. Ceux-ci incluent: NODEJSDIR, NPMINSTALLDIR, LANGNAME, BUILDVERBOSITY, GIT_HOME.

Mise à jour: J'ai signalé cela à l'assistance de Microsoft et il est maintenant enregistré comme un problème. Le travail autour de maintenant est de construire en utilisant devenv de la ligne de commande:

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

+0

Que voulez-vous dire "MSBuild 2017"? Est-ce que l'invite de commande de Developer pour l'outil VS 2017 ou l'appel MSBuild.exe à partir de C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ MSBuild \ 15.0 \ Bin? Pourriez-vous me partager votre commande de construction?Vous pouvez essayer de créer un nouveau projet Cordova vide, copier des scripts dans le nouveau projet, puis vérifier si cela fonctionne correctement. –

+0

Il est le MSBuild de: C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ BuildTools \ MSBuild \ 15.0 \ Bin Je l'ai téléchargé à partir de https://www.visualstudio.com/downloads/ "Build Tools pour Visual Studio 2017 " – Callum

+0

merci pour votre réponse. Depuis que vous avez installé Visual Studio Professional 2017 sur votre ordinateur, essayez d'utiliser MSBuild à partir de: C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild \ 15.0 \ Bin. Vérifiez si cela fonctionne bien. Si ce n'est pas le cas, veuillez partager le journal de construction ici. –

Répondre

0

Le seul changement pour vous construire script est de fournir manuellement MSBuild la propriété qui indiquent Visual Studio 2017 Instance utilisant /p:InstanceId=432dc062

Cette instance id changera après les mises à jour VS2017, donc vous devriez mettre à jour manuellement les scripts de construction après cela.

Vous instance en cours pourrait être obtenue en utilisant vswhere.exe en exécutant

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

Merci pour votre réponse. Je suis en correspondance avec Microsoft Support et il est maintenant enregistré comme un problème connu. Je vais mettre à jour ma question avec un travail temporaire. – Callum

+0

J'ai également mis une solution de contournement sur le site Web de la communauté des développeurs https://developercommunity.visualstudio.com/content/problem/155613/build-new-cordova-project-with-msbuild-results-in.html Alors peut-être que cela aide aussi. – codevision