web-dev-qa-db-fra.com

Le projet importé Microsoft.WebApplications.targets est introuvable.

J'ai cette erreur lors de la configuration de l'intégration continue dans le serveur TFS, mais j'ai déjà trouvé la réponse. Peut-être que cela aidera les autres:

The imported project "C:\Program Files (x86)\
   MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\
   Microsoft.WebApplications.targets" was not found.
45
stack247

Vous devez soit ... 

  1. Installez Visual Studio sur votre machine de construction, ou  
  2. Copiez manuellement le contenu du dossier MSBuild\Visual Studio\v10.0\WebApplications vers le même emplacement sur votre machine de génération.
51
Jim Lamb
<!--<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets" />-->

Commentaire au-dessus de la ligne dans .CSproj. Cela ressemble à un bogue avec Microsoft qui ne supprime ni ne commente lors de la mise à jour de projet de visual studio 2008 à 2010.

11
Manoj

J'ai constaté la même erreur lors de la configuration de l'intégration continue avec Jenkins. J'ai pu ajouter un argument de ligne de commande à MSBUILD: /p:VisualStudioVersion=12.0 car Visual Studio 2012 était installé sur mon serveur de génération.

6
TPoschel

Télécharger et installer Package redistribuable Microsoft Visual Studio 2013 Shell . Ou utilisez le lien direct vers vs_isoshell.exe . J'ai l'intention de faire un paquet NuGet pour cela à une date ultérieure.

L'avantage que je vois dans cette approche est qu'elle supprime tout doute sur les questions de droit d'auteur.

3
Tim Murphy

J'ai vécu quelque chose de similaire. 

Je l'avais écrit dans notre fichier Autobuild.targets dans le cadre d'une construction. Il définit MSWebApplicationTargets:

<MSWebApplicationTargets>$(SolutionDirectory)\packages\MSBuild.Microsoft.VisualStudio.Web.targets.14.0.0.3</MSWebApplicationTargets>

Ensuite, dans un fichier .csproj faisant partie du projet et utilisé dans la construction, il contenait:

<Import
     Project="$(MSWebApplicationTargets)/tools/VSToolsPath/WebApplications/Microsoft.WebApplication.targets" />

Maintenant, notre problème était que, lorsque nous avons ouvert le projet dans Visual Studio, il était indiqué que c:/tools/VSToolsPath/WebApplications/Microsoft.WebApplication.targets n’existait pas (car VS considérait MSWebApplicationTargets comme non défini et semblait donc le remplacer par défaut par c:\). Vous ne fournissez pas assez d'informations mais c'est peut-être aussi ce qui a causé votre problème.

Tout ce que j'avais à faire pour résoudre ce problème était d'ajouter une condition:

<Import 
    Project="$(MSWebApplicationTargets)/tools/VSToolsPath/WebApplications/Microsoft.WebApplication.targets" 
    Condition="'$(MSWebApplicationTargets)' != ''" />

Pourquoi faire cela avec Microsoft.WebApplication.targets

Dans le cadre de discussions ultérieures, j’ai fait cela avec Microsoft.WebApplication.targets afin que nous n’ayons pas à nous fier à l’installation de Visual Studio sur les serveurs de construction. Je l'ai ajouté comme dépendance:

  • Dans Visual Studio, cliquez avec le bouton droit sur le projet et accédez à manage nuget packages. Cela a créé un fichier packages.config qui répertoriait MSBuild.Microsoft.VisualStudio.Web.targets en tant que dépendance. 
  • J'ai ensuite ajouté nuget.exe restore au début du script de construction pour que les dépendances soient téléchargées.
2
HankCa

J'ai eu ce problème aussi, sauf que ces fichiers étaient déjà là. Après beaucoup de dépannage, la réponse s'est révélée extrêmement simple: redémarrez le service de l'agent de génération. Dans mon cas, il s'agissait de: "Hôte 2013 du service de génération de build Visual Studio Team Foundation"

1
GrokSrc

Si vous ne déployez pas à partir du serveur de génération, désactivez simplement le Microsoft.WebApplication.targets sur le serveur de génération. Voir ma réponse ici: https://stackoverflow.com/a/35781566/4955344

1
Alex R.

Et si vous avez déjà installé Visual Studio? Peut-être que Visual Studio 2012 est installé (et 10.0 indique VS 2010)? Si tel est le cas, vous pouvez simplement rechercher dans votre fichier .csproj "10.0" et le remplacer par "11.0". Vous pourrez ensuite ouvrir le projet sans problème.

1
Kirk Woll