web-dev-qa-db-fra.com

"La tâche a échoué car AXImp.exe n'a pas été trouvé" lors de l'utilisation de MSBuild 12 pour générer un projet MVC 4.0

J'essaie de configurer un serveur de construction à l'aide de CruiseControl.Net et MSBuild. Cependant, cela échoue avec l'erreur:

 "C:\Builds\PremiumStore\checkout\PremiumStore.sln" (default target) (1) ->
    "C:\Builds\PremiumStore\checkout\Web\PremiumStoreWeb.csproj" (default target) (37) ->
    (ResolveComReferences target) ->
    C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(2151,5):     
    error MSB3091: Task failed because "AxImp.exe" was not found, or the correct Microsoft  
    Windows SDK is not installed.
 The task is looking for "AxImp.exe" in the "bin" subdirectory beneath the location specified in the InstallationFolder value of the registry key `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.1A\WinSDK-  NetFx40Tools-x86.`

 You may be able to solve the problem by doing one of the following:    

 1. Install the Microsoft Windows SDK.

 2. Install Visual Studio

 3. Manually set

    the above registry key to the correct location.  4) Pass the correct location into the 
    "ToolPath" parameter of the task. 
    [C:\Builds\PremiumStore\checkout\Web\PremiumStoreWeb.csproj]

La même chose se passe bien sur ma propre machine, mais pas sur le serveur.

J'ai essayé de chercher une solution sur Internet, mais je suis incapable de la trouver. Si possible, je préférerais ne pas avoir à installer Visual Studio sur le serveur de génération. C'est un peu excessif d'installer tout un IDE juste pour faire des constructions en ligne de commande. J'ai installé Microsoft Build Tools 2013 sur ce serveur mais cela ne semble pas aider.

J'ai essayé de mettre le chemin dans le registre comme suggéré par le message d'erreur, mais cela n'a pas fonctionné non plus. J'ai également vérifié le chemin indiqué dans le registre et le fichier aximp.exe est bel et bien présent, mais dans un sous-dossier appelé "Outils NetFx 4.5.1". Cependant, copier les fichiers à partir d’ici un niveau jusqu’au dossier parent "bin" ne semble pas aider non plus.

Si cela peut aider, mon serveur de génération s'exécute sur Windows Server 2012. 

Merci d'avance.

11
ckng

Ce qu’ils recommandent à l’étape 1 («installer le Kit de développement logiciel (SDK) de Microsoft Windows») est le bon conseil. Installez le Microsoft Windows SDK .

5
dnord

Pour Windows 10, j'ai installé "Microsoft Windows SDK" 8.1, mais cela ne m'a pas aidé.

J'ai donc suivi par 3) option dans description de l'erreur: définissez manuellement la clé de registre.

Commande "regedit" ouverte de CMD et emplacement trouvé (comme exception suggérée) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDK\Windows \ v8.0A
Le dossier " WinSDK-NetFx40Tools-x86 " était absent, je l'ai donc créé et rempli avec les clés suivantes:

ComponentName : Outils de SDK Windows pour .NET Framework 4.0
InstallationFolder : C:\Fichiers de programme (x86)\Microsoft SDK\Windows\v8.0A\bin\NETFX 4.0 Outils \
ProductVersion : 8.0.50727

P.S .: assurez-vous que vous avez AxImp.exe dans "C:\Program Files (x86)\Microsoft SDK\Windows\v8.0A\bin\NETFX 4.0 Tools \"

Par le même algorithme, vous pouvez essayer avec une autre version - v8.1A. 

3
rock_walker

J'ai résolu mon problème d'installation Windows 8.1 SDK

2
Julio Nobre

Afin de résoudre ce problème, je devais suivre les étapes suivantes.

  • Je devais installer le Kit de développement logiciel (SDK) Windows (version 7.1, dans mon cas), mais il ne l’installerait pas pour la raison traitée dans cette question ;
  • J'ai ensuite procédé à la modification des clés de registre détaillées dans la réponse à cette question, mais le message «Erreur lors de l'écriture du nouveau contenu de la valeur» a été détecté. message;
  • J'ai alors suivi ce guide (également lié dans les commentaires à la réponse à la question susmentionnée) afin de modifier les clés de registre de toute façon;
  • J'ai ensuite pu installer le Kit de développement logiciel (SDK) Windows, puis j'ai créé manuellement la clé de registre recherchée, en veillant à ce que la valeur "InstallationFolder" pointe vers le dossier du Kit de développement logiciel nouvellement créé (dans mon cas, "C:\Program Files\Microsoft SDK\Windows\v7.1 ").

Cela m'a permis de surmonter cette erreur.

1
Emanuele Ciriachi

C’est toujours un problème que j’ai vu aujourd’hui et j’ai découvert que lorsque j’essayais de compiler l’application dans Visual Studio, elle était compilée correctement, mais en exécutant le fichier MSBuild.exe à partir de C:\Windows\Microsoft.NET\Framework\v4. .0.30319\MSBuild.exe a généré cette erreur.

Après avoir installé le Kit de développement .NET 4.7.2 SDK et ayant toujours le même problème, j'ai découvert qu'il existe d'autres instances de MSBuild.exe.

J'ai changé notre script de compilation pour utiliserC:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exeà la place et le problème "par magie" a disparu.

0
Ben Keene

J'ai longtemps lutté avec cela. Je dois avoir installé seize choses différentes et essayé vingt versions différentes de la réponse de clé de registre ( "La tâche a échoué car AXImp.exe n'a pas été trouvé" lors de l'utilisation de MSBuild 12 pour générer un projet MVC 4.0 ). Finalement, j'ai compris que j'avais utilisé buildtools v14 alors que j'aurais dû utiliser 15. Ainsi, au lieu d'utiliser C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe, j'ai utilisé C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe, puis l'erreur a disparu.

0
L42

Pour résoudre ce problème, j’ai installé Windows sdk 10, 8 et 7, et j’ai modifié le registre pour indiquer la position correcte où AxImp.exe localise. Mais malheureusement, j'ai toujours la même erreur.

Je viens de trouver de temps en temps en utilisant MSBuild 14.0 plutôt que 4.0 (C:\Windows\Microsoft.NET\Framework\v4.0.30319) peut construire mon projet avec succès.

Pour utiliser MSBuild 14.0, vous devez configurer le chemin d'accès dans la variable d'environnement.

0
Owen Cao