Erreur de génération VS2013 externe «erreur MSB4019: le projet importé n’a pas été trouvé»

Je construis un projet via la ligne de commande et non à l’intérieur de Visual Studio 2013. Remarque: j’avais mis à niveau mon projet de Visual Studio 2012 à 2013. Le projet se construit correctement dans l’EDI. En outre, j’ai complètement désinstallé VS2012 en premier, redémarré et installé VS2013. La seule version de Visual Studio que j’ai est 2013 Ultimate.

ValidateProjects: 39>path_to_project.csproj(245,3): error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets" was not found. Confirm that the path in the  declaration is correct, and that the file exists on disk. 39>Done Building Project "path_to_project.csproj" (Clean target(s)) -- FAILED. 

Voici les deux lignes en question:

   

La deuxième ligne originale était la version 10.0, mais j’ai changé cela manuellement en v12.0.

$ (VSToolsPath) s’allonge depuis ce que je vois vers le dossier v11.0 (VS2012), qui n’est évidemment plus présent. Le chemin aurait dû être à la v12.0.

 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\WebApplications\ 

J’ai essayé de spécifier VSToolsPath dans la table des variables d’environnement de mon système, mais l’utilitaire de génération externe utilise toujours la version 11.0. J’ai essayé de chercher dans le registre et cela n’a rien donné.

Malheureusement, je ne vois aucun moyen facile d’obtenir la ligne de commande exacte utilisée. J’utilise un outil de construction.

Pensées?

J’ai eu le même problème et trouver une solution plus facile

Il est dû à l’ajout de Vs2012 dans le fichier csproj cette partie:

  10.0 $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)  

Vous pouvez supprimer cette partie en toute sécurité et votre solution sera créée.

Comme Sielu l’a souligné, vous devez vous assurer que le fichier .proj commence par sinon la prochaine fois que vous ouvrez le projet avec Visual Studio 2010, il appenda à nouveau le noeud supprimé.

Sinon, si vous devez utiliser webdeploy ou utiliser un serveur de génération, la solution ci-dessus ne fonctionnera pas, mais vous pouvez spécifier la propriété VisualStudioVersion dans votre script de génération:

 msbuild myproject.csproj /p:VisualStudioVersion=12.0 

ou modifiez votre définition de construction:

edit build definition pour spécifier la propriété <code/> VisualStudioVersion

Je l’ai eu aussi et vous pouvez le réparer en définissant la version des outils dans votre définition de construction.

C’est très facile à faire. Ouvrez votre définition de construction et accédez à la page ” Processus “. Ensuite, sous le groupe ” 3. Avancé “, vous avez une propriété appelée ” Arguments MSBuild “. Placez le paramètre avec la syntaxe suivante

 /p:VisualStudioVersion=12.0 

Si vous avez plus de parameters, séparez-les par un espace et non par une virgule.

Ceci est étroitement lié mais peut ou peut ne pas résoudre le problème spécifique des OP. Dans mon cas, j’essayais d’automatiser le déploiement d’un site Azure à l’aide de VS2013. Construire et déployer via VS fonctionne, cependant, l’utilisation de MSBuild a montré une erreur similaire autour des “cibles”. Il s’avère que MSBuild est différent sous VS2013 et fait maintenant partie de VS et non du .Net Framework (voir http://timrayburn.net/blog/visual-studio-2013-and-msbuild/ ). Fondamentalement, utilisez la version correcte de MSBuild:

VIEUX, VS2012

 C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe 

NOUVEAU, VS2013

 C:\Program Files (x86)\MSBuild\12.0\bin\msbuild.exe 

Plus récent, VS2015

 C:\Program Files (x86)\MSBuild\14.0\Bin\msbuild.exe 

Plus récent encore, VS2017 (pas complètement testé mais découvert – ils ont un peu déplacé les choses)

 C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\msbuild.exe 

Je viens de recevoir une réponse de Kinook, qui m’a donné un lien :

Fondamentalement, je dois appeler le suivant avant de créer. Je suppose que Visual Studio 2013 n’enregistre pas automatiquement l’environnement en premier, mais 2012 l’a fait, ou je l’ai fait et j’ai oublié.

 call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86 

Espérons que cet article aide quelqu’un d’autre.

La solution de giammin est partiellement incorrecte. Vous NE DEVRIEZ PAS supprimer tout le PropertyGroup de votre solution. Si vous le faites, la fonctionnalité “DeployTarget = Package” de MSBuild cessera de fonctionner. Cette fonctionnalité repose sur le “VSToolsPath” en cours de définition.

     $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)  ...  

J’ai eu ce problème pour nos cibles FSharp (FSharpTargetsPath était vide).

Beaucoup de chemins sont construits en référence à la version VS.

Pour diverses raisons, notre build s’exécute avec les privilèges du système et la variable d’environnement “VisualStudioVersion” n’a été définie (par le programme d’installation de VS 2013) qu’au niveau “utilisateur”, ce qui est assez juste.

Assurez-vous que la variable d’environnement ” VisualStudioVersion ” est définie sur ” 12.0 ” au niveau (système ou utilisateur) que vous utilisez.

L’exécuter dans la ligne de commande résoudra également le problème. SETX VisualStudioVersion “12.0”

Si vous migrez Visual Studio 2012 vers 2013, ouvrez le fichier de projet * .csprorj avec edior.
et cochez l’élément ToolsVersion de la balise ‘Project’.

C’est la valeur 4.0
Vous atteignez 12.0

  • De

     < ?xml version="1.0" encoding="utf-8"?>  
  • À

     < ?xml version="1.0" encoding="utf-8"?>  

Ou Si vous construisez avec msbuild, spécifiez simplement la propriété VisualStudioVersion

msbuild /p:VisualStudioVersion=12.0

J’utilisais un utilitaire de génération externe. Pensez à quelque chose comme les fourmis, si je comprends bien le produit, juste une version commerciale. Je devais contacter le fabricant pour la réponse.

En fait, il existe une macro globale dans le projet, DEVSTUDIO_NET_DIR. J’ai dû changer le chemin vers .Net. Ils énumèrent diverses versions de studio visuel comme “Actions”, qui à travers moi, mais tous les chemins mènent à cette variable globale dans les coulisses. Je citerais cela comme un défaut par rapport au produit, si je le pouvais, à moins que je ne manque quelque chose. Corriger le chemin a résolu le problème de construction.

J’ai Visual Studio 2013 installé. Cela a fonctionné pour moi:

  12.0` $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)  

J’ai donc changé la condition de == à != Et la valeur de 10.0 à 12.0 .

J’ai eu un problème similaire. Toutes les solutions proposées ne fonctionnent que pour résoudre ce problème, mais ne résolvent pas la source d’erreur. La solution @giammin ne doit pas être appliquée si vous utilisez le serveur de génération tfs car il ne fait que bloquer la fonctionnalité de publication. @ solution cat5dev – résout le problème mais ne résout pas le problème.

Je suis presque sûr que vous utilisez un modèle de processus de génération pour VS2012 comme ReleaseDefaultTemplate.11.1.xaml or DefaultTemplate.11.1.xaml Ces modèles de build ont été créés pour VS2012 et $ (VisualStudioVersion) sur 11.0.

Vous devez utiliser un modèle de processus de génération pour VS2013 ReleaseTfvcTemplate.12.xaml or TfvcTemplate.12.xaml qui a la valeur $ (VisualStudioVersion) définie sur 12.0

Cela fonctionne sans aucune modification dans le fichier de projet.

J’ai aussi eu la même erreur .. je l’ai fait pour le réparer

  

changer à

  

et c’est fait.

Dans mon cas, je viens de commenter la ligne en ouvrant le fichier .csproj et fait le tour

.

Mon problème peut être différent mais je suis traîné ici, mais cela peut aider quelqu’un.

J’ai choisi un seul projet Web à partir de ma solution et j’ai essayé de l’ouvrir en tant que projet autonome qui posait problème, après quoi j’ai pu résoudre le problème.

Dans mon cas, l’environnement de développement est VS2013 et j’utilise TFS 2010. Build était ciblé pour .NET 4.5.1. Je mettais en place la construction automatique pour CI. chaque fois que j’essayais des solutions de contournement mentionnées ci-dessus – comme supprimer complètement le groupe de propriétés ou remplacer des lignes, etc. Je n’ai pas pu réaliser les deux simultanément.

Donc, finalement, j’ai dû passer l’argument MSBuild pour résoudre le problème.

Allez à Editer la définition de construction> Processus> 3. Avancé> Arguments MSBuild (définissez sur) /p:VisualStudioVersion=12.0

Cela a fonctionné pour moi.

Vous devez copier le dossier WebApplications de C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v12.0 \ vers C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \

tu trouveras

 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets 

dans le fichier csproj pour lequel cette erreur apparaît. Supprimez simplement ceci de csproj et construisez ensuite.

Une seule chose doit être faite pour résoudre le problème: mettez à niveau TeamCity vers la version 8.1.x ou supérieure car la prise en charge de Visual Studio 2012/2013 et MSBuild Tools 2013 n’a été introduite que dans TeamCity 8.1. Une fois que vous avez mis à jour votre version de TeamCity Modify MSBuild Tools Version dans votre étape de construction en conséquence, le problème disparaîtra. Pour plus d’informations, lisez ici: http://blog.turlov.com/2014/07/upgrade-teamcity-to-enable-support-for.html

Moi – rien ne consortingbuait à changer la valeur v11.0 de la variable VisualStudioVersion en v10.0. Changer la variable dans le fichier .csproj ne l’a pas fait. Le réglage par promt de commande ne l’a pas fait. Etc…

J’ai fini par copier mon dossier local de cette version spécifique (v11.0) sur mon serveur de compilation.

J’avais essayé toutes les solutions ci-dessus et toujours pas de chance. J’avais entendu des gens installer Visual Studio sur leurs serveurs de construction pour le réparer, mais je n’avais que 5 Go d’espace libre, alors j’ai simplement copié C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio sur mon serveur de compilation. . A commencé à travailler après cela, en utilisant l’équipe city 9.x et visual studio 2013.

Basé sur TFS 2015 Build Server

Si vous contrer cette erreur ... Error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets" was not found. Confirm that the path in the declaration is correct, and that the file exists on disk. ... Error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets" was not found. Confirm that the path in the declaration is correct, and that the file exists on disk.

Ouvrez le fichier .csproj du projet nommé dans le message d’erreur et commentez la section ci-dessous

J’ai cette erreur lorsque j’installe des composants VS. Malheureusement, aucune de ces réponses ne m’a aidé. J’utilise TFS pour le développement de commandes et je n’ai aucune autorisation pour modifier la définition de construction. J’ai résolu ce problème en supprimant les variables d’environnement appelées VS110COMNTOOLS et VS120COMNTOOLS . Je pense qu’il a été installé avec mes composants VS.

J’ai trouvé que le dossier WebApplications manquait sur mon PC local, je ne l’ai pas installé avec Visual Studio 2017 comme lors de l’utilisation de 2012.