Erreur de construction VS2013 externe " erreur MSB4019: le projet importé n'a pas été trouvé"

je construis un projet à travers la ligne de commande et pas à L'intérieur de Visual Studio 2013. Note, j'avais amélioré mon projet de Visual Studio 2012 à 2013. Le projet se construit bien à l'intérieur de L'IDE. En outre, j'ai complètement désinstallé VS2012 d'abord, 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)MSBuildMicrosoftVisualStudiov11.0WebApplicationsMicrosoft.WebApplication.targets" was not found. Confirm that the path in the <Import> 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:

<Import Project="$(VSToolsPath)WebApplicationsMicrosoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)MicrosoftVisualStudiov12.0WebApplicationsMicrosoft.WebApplication.targets" Condition="false" />

la deuxième ligne originale était v10.0, mais j'ai changé ça en v12.0.

$(VSToolsPath) s'allonge de ce que je vois à la v11.Dossier 0 (VS2012), qui n'est évidemment plus là. Le chemin aurait dû être vers v12.0.

C:Program Files (x86)MSBuildMicrosoftVisualStudiov12.0WebApplications

j'ai essayé de spécifier VSToolsPath dans ma table de variables d'environnement système, mais l'utilitaire de construction externe utilise toujours v11.0. J'ai essayé de chercher dans le registre et qui est venu avec rien.

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

?

195
demandé sur Josh M. 2013-11-01 03:19:12

23 réponses

j'ai eu le même problème et trouver une solution plus facile

il est dû à Vs2012 ajoutant dans le fichier csproj cette partie:

<PropertyGroup>
  <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
  <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>

vous pouvez enlever cette pièce en toute sécurité et votre solution sera construite.

comme Sielu a souligné vous devez vous assurer que le .début du fichier proj avec <Project ToolsVersion="12" , sinon, la prochaine fois que vous ouvrez le projet avec visual studio 2010, il ajoutera le nœud supprimé de nouveau.

sinon si vous avez besoin d'utiliser webdeploy ou si vous utilisez un serveur de compilation, la solution ci-dessus ne fonctionnera pas, mais vous pouvez spécifier la propriété VisualStudioVersion dans votre script de compilation:

msbuild myproject.csproj /p:VisualStudioVersion=12.0

ou modifier votre définition de construction:

edit build definition to specify the <codeVisualStudioVersion</code property

244
répondu giammin 2017-05-23 12:02:48

j'avais cela aussi et vous pouvez le corriger en paramétrant la version des outils dans votre définition de construction.

C'est très facile à faire. Ouvrez votre définition de construction et allez à la page " "Process ". Puis sous le " 3. Avancé groupe "vous avez une propriété appelée" MSBuild Arguments ". Placez le paramètre ici avec la syntaxe suivante

/p:VisualStudioVersion=12.0 

Si vous avez plus de paramètres, les séparer par un espace et non une virgule.

70
répondu Ralph Jansen 2014-10-06 13:28:03

il s'agit d'une question étroitement liée, mais qui peut ou non régler une question particulière à L'OPs. Dans mon cas, j'essayais d'automatiser le déploiement d'un site Azure en utilisant VS2013. Construire et déployer via VS works, cependant, en utilisant 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, utiliser la bonne version de MSBuild:

OLD, VS2012

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

NEW, VS2013

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

Plus Récent, VS2015

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

plus récent encore, VS2017 (pas entièrement testée mais découverte - ils ont bougé les choses un peu)

C:\Program Files (x86)\Microsoft Visual Studio17\Professional\MSBuild.0\Bin\msbuild.exe
49
répondu Jester 2017-06-28 21:16:30

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

fondamentalement, je dois appeler les suivants avant de bulding. 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 ce post aide quelqu'un d'autre.

22
répondu Sarah Weinberger 2013-10-31 23:27:24

la solution de giammin est partiellement incorrecte. Vous ne devrait pas supprimer ce groupe de propriété entière de votre solution. Si vous le faites ,la fonctionnalité de MSBuild "Depletarget=Package" cessera de fonctionner. Cette caractéristique repose sur le" VSToolsPath " étant défini.

<PropertyGroup>
  <!-- VisualStudioVersion is incompatible with later versions of Visual Studio.  Removing. -->
  <!-- <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion> -->
  <!-- VSToolsPath is required by MSBuild for features like "DeployTarget=Package" -->
  <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
...
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
21
répondu cat5dev 2017-05-23 11:47:32

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 fonctionne avec des privilèges système, et la variable d'environnement" VisualStudioVersion "n'a été définie (par L'installateur VS 2013) qu'au niveau" utilisateur " - ce qui est suffisant.

S'assurer que la variable d'environnement " VisualStudioVersion " est réglée à " 12.0 " au niveau (Système ou Utilisateur) que vous exécutez.

10
répondu Scott 2014-11-13 05:56:54

exécuter ceci dans la ligne de commande résoudra aussi le problème. SETX VisualStudioVersion "12.0"

6
répondu Steve 2014-01-22 20:59:00

si vous migrez Visual Studio 2012 à 2013, alors ouvrez *.csprorj dossier de projet avec edior.

et vérifiez L'élément ToolsVersion de la balise' Project'.

C'est la valeur 4.0

Vous faites à 12.0

  • de

    <?xml version="1.0" encoding="utf-8"?>
    <Project ToolsVersion="4.0"
    
  • à

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

ou si vous construisez avec msbuild, alors spécifiez simplement la propriété VisualStudioVersion

msbuild /p:VisualStudioVersion=12.0

3
répondu Kim Ki Won 2014-05-28 09:18:57

j'utilisais un utilitaire de construction externe. Pensez à quelque chose comme les fourmis, si je comprends le produit correctement, juste une version commerciale. J'ai dû contacter le fabricant pour la réponse.

comme il s'avère, il y a 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 off, mais toutes les routes mènent à cette variable globale dans les coulisses. Je voudrais citez cela comme un défaut contre le produit, si j'avais ma façon, à moins que je ne manque quelque chose dans ma compréhension. Corriger le chemin a corrigé le problème de construction.

2
répondu Sarah Weinberger 2013-11-20 13:06:53

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

<PropertyGroup>
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' != ''">12.0</VisualStudioVersion>`
    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>

donc j'ai changé la condition de == en != et la valeur de 10.0 en 12.0 .

2
répondu pinus.acer 2014-07-10 11:54:33

j'ai eu un problème similaire. Toutes les solutions proposées ne font que travailler autour de cette question, mais ne résolvent pas la source d'erreur. la solution @giammin ne doit pas être appliquée si vous utilisez le serveur de compilation tfs car il vient de planter la fonctionnalité publier. @cat5dev solution-résout le problème mais ne résout pas la source de celui-ci.

je suis presque sûr que vous utilisez le modèle de processus de construction pour VS2012 comme ReleaseDefaultTemplate.11.1.xaml or DefaultTemplate.11.1.xaml ces modèles ont été réalisés pour VS2012 et $ (VisualStudioVersion) mis à 11.0

vous devez utiliser le modèle de processus de construction pour VS2013 ReleaseTfvcTemplate.12.xaml or TfvcTemplate.12.xaml qui a $(VisualStudioVersion) réglé à 12.0

cela fonctionne sans aucun changement dans le dossier de projet.

2
répondu Imaginary 2014-09-05 14:43:48

j'ai aussi eu la même erreur .. J'ai fait cela pour le réparer

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets" />

changer à

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />

et c'est fait.

2
répondu Pyro 2016-05-17 07:59:16

dans mon cas je commente juste au-dessous de la ligne en ouvrant .fichier csproj et a fait le tour

. <!-- <Import Project="..\PRPJECTNAME.targets" /> -->

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 de ma solution et essayer de l'ouvrir comme un projet autonome qui faisait problème, après au-dessus de heck je suis capable de résoudre problème.

2
répondu Usman Younas 2017-03-30 14:10:50

dans mon cas, dev environment est VS2013 et j'utilise TFS 2010. Build a été ciblé pour .NET 4.5.1. Je préparais une auto-construction pour L'Indic. chaque fois que j'ai essayé des solutions de rechange mentionnées ci - dessus-comme enlever le groupe de propriétés complètement ou remplacer certaines lignes, etc. ma construction avait l'habitude d'arriver dans TFS mais ma publication à azure avait l'habitude d'échouer avec 'MSDeploy' ou parfois une erreur différente. Je n'ai pas pu réaliser les deux simultanément.

donc finalement J'ai dû passer MSBuild argument pour résoudre le problème.

Goto Modifier la définition de build > Processus > 3. Avancé > Arguments de MSBuild (défini à) /p:VisualStudioVersion=12.0

ça a marché pour moi.

1
répondu Vishwajit G 2014-09-18 12:13:00

vous devez copier les applications Web de dossier à partir de C:\Program fichiers (x86)\MSBuild\Microsoft\VisualStudio\v12.0 0\ pour C:\Program fichiers (x86)\MSBuild\Microsoft\VisualStudio\v11.151910920"

1
répondu Tazos333 2014-10-03 05:39:36

vous trouverez

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

dans le fichier csproj pour lequel cette erreur apparaît. Il suffit de supprimer cela de csproj et puis construire.

0
répondu Mukund 2014-02-14 08:51:17

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

0
répondu Alex T. 2014-07-24 15:54:32

moi-rien n'aidait à changer le v11.0 valeur de la variable VisualStudioVersion à v10.0. Changement de variable .pas le fichier csproj. Le placer par ordre promt ne l'a pas fait. Etc...

a fini par copier mon dossier local de cette version spécifique (v11.0) à mon serveur de compilation.

0
répondu Jurijs Kastanovs 2014-08-21 11:36:16

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'espaces libres donc j'ai juste copié C:\Program dossiers (x86)\MSBuild\Microsoft\VisualStudio à mon serveur de construction et l'a appelé un jour. J'ai commencé à travailler après ça, en utilisant team city 9.X et visual studio 2013.

0
répondu odyth 2016-02-04 07:28:08

basé sur TFS 2015 Build Server

si vous annulez 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 <Import> declaration is correct, and that the file exists on disk.

ouvrir le fichier .csproj du projet nommé dans le message d'erreur et commenter la section ci-dessous

<!-- <PropertyGroup> --> <!-- <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion> --> <!-- <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> --> <!-- </PropertyGroup> -->

0
répondu Julius Depulla 2017-03-10 17:01:12

j'ai eu cette erreur quand j'ai installé des composants VS. Malheureusement aucune de ces réponses ne m'a pas aidé. J'utilise TFS pour le développement de commandes et je n'ai aucune permission pour éditer la définition de build. 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.

0
répondu Joseph Katzman 2017-03-27 16:31:21

j'ai trouvé que je manquais le dossier WebApplications sur mon PC local, ne s'est pas installé avec Visual Studio 2017 comme il l'avait quand j'ai utilisé 2012.

0
répondu Kris 2017-07-28 14:56:45

dans mon cas, j'utilisais la mauvaise version de MSBuild.exe .

la version que vous devez utiliser dépend de quelle version de Visual Studio vous avez utilisé pour créer votre projet. Dans mon cas, j'avais besoin de 14.0 (après avoir utilisé Visual Studio 2015).

cela a été trouvé à:

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

vous pouvez regarder sous:

C:\Program Files (x86)\MSBuild

pour trouver d'autres versions.

0
répondu EM-Creations 2018-10-03 15:35:27