Pourquoi ai-je l'erreur "la cible GatherAllFilesToPublish n'existe pas"?

J'ai récemment installé les nouveaux outils de développement Azure pour Visual Studio 2010 service pack 1. Chaque fois que j'essaie de publier un site Web existant (en utilisant le déploiement du système de fichiers), j'obtiens l'erreur suivante:

La cible "GatherAllFilesToPublish" n'existe pas dans le projet.

Quelqu'un peut-il me dire ce qui me manque?

Merci

64
demandé sur Roman Marusyk 2012-06-12 04:09:07

18 réponses

Les gars, je suis terriblement désolé que vous rencontriez ce problème.

Je pense que je sais quel est le problème. Lorsque vous installez les bits du SDK Azure, il installe certaines mises à jour VS Web Publish. L'une de ces mises à jour du fichier à C:\Program fichiers (x86) \ MSBuild \ Microsoft\VisualStudio\v10.0\WebApplications \ Microsoft.WebApplication.cible. Basé sur la façon dont notre configuration est définie si ce fichier a un horodatage mis à jour (pour une raison quelconque), lorsque vous installez le nouveau composant, le fichier ne reçoit pas mettre.

Pour résoudre ce problème, vous devriez être en mesure de suivre les étapes ci-dessous:

Pouvez-vous l'essayer et me faire savoir si cela fonctionne ou non?

82
répondu Sayed Ibrahim Hashimi 2012-07-10 14:59:44

J'ai eu ce problème, et il a été corrigé en ajoutant:

<Target Name="GatherAllFilesToPublish">
</Target>

Dans le fichier de projet. Je n'ai toujours aucune idée de ce qui se passe.

48
répondu Emanuele Ciriachi 2014-01-31 10:46:24

Cela a fonctionné pour moi fix - rassembler tous les fichiers à publier erreur

  1. cliquez avec le bouton droit sur le projet et sélectionnez Modifier (nom du projet).csproj. (par exemple modifier dans le bloc-notes)
  2. recherchez <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  3. Ajouter ce qui suit au-dessus de la ligne.

    <PropertyGroup> 
     <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">13.0</VisualStudioVersion>
     <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
    </PropertyGroup>
    
  4. Enregistrer et recharger le projet.

42
répondu PhillyNJ 2014-02-26 22:49:44

La suppression de ces installations a résolu le problème pour moi:

  • Web De Microsoft À Publier - Visual Web Developer Express 2010
  • Web De Microsoft À Publier - Visual Studio 2010

Référence

9
répondu Eduardo Campañó 2012-07-03 19:34:45

J'ai eu un problème similaire quand je voulais publier mon ASP.Net application à Windows Azure. Après de nombreux essais et erreurs finalement Cette solution a fonctionné pour moi. Cela n'a pas besoin de renommer les fichiers ou d'installer / réinstaller des correctifs / correctifs. Voici ce que vous devez faire:

Ouvrez le ASP.Net fichier de projet (.csproj) dans Wordpad / Notepad et trouver la ligne ressemblant à ceci:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="'$(Solutions.VSVersion)' == '8.0'" />

Remplacez-le par la ligne comme indiqué ci-dessous:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
5
répondu Rashid 2013-09-30 11:34:50

J'ai eu un problème similaire et l'ai résolu en utilisant les étapes fournies par Sayed.

Le fichier que j'ai renommé était dans le répertoire v10.0 cependant.

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

Le fichier original qui était là était daté du 18-Jan-2011, après l'avoir renommé avec un .les extensions bak ont ensuite réinstallé KB2591016, la publication semble fonctionner à nouveau. La nouvelle date du fichier Microsoft.WebApplication.objectifs est maintenant 11-août-2011.

3
répondu Sprinkle 2012-06-25 04:43:07

Je me rends compte de cela dans une vieille question, mais je l'ai rencontré récemment et voici comment je l'ai résolu.

Contexte: j'avais un ancien projet que J'ai mis à niveau vers VS studio 13. Il semble que le fichier de projet n'a pas été mis à niveau correctement.

Il y a des références à VS v10.0, dans le fichier csproj, mais je cours VS 13 qui est vraiment "v12.0".

J'ai donc dit au fichier csproj d'utiliser le dossier "v12. 0", pas un dossier "v10. 0".

C'est ce que j'avais:

<PropertyGroup>
  <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
  <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(SolutionDir)\..\BuildTools\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(SolutionDir)\..\BuildTools\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />

C'est ce que je changé en:

<PropertyGroup>
  <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">12.0</VisualStudioVersion>
  <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />

Maintenant, ma publication sur le système de fichiers fonctionne!

3
répondu Vilhelm H. 2015-09-10 08:30:47

J'ai eu le même problème avec Visual Studio 2013 (et 2015).

Le correctif crucial pour moi était d'ajouter le paramètre de propriété VSToolsPath, qui manquait dans mon fichier de projet, pour une raison quelconque.

J'ai ajouté ceci dans la directive <PropertyGroup>:

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

Comme note de côté: mon fichier de projet fait également référence à la version v10. 0 du fichier Microsoft.WebApplication.targets, mais cela semble être correct.

3
répondu derFunk 2015-12-17 10:12:19

J'ai eu la même erreur. D'une certaine manière, cette ligne était manquante.

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

Ajouté juste en dessous

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

Fonctionne très bien maintenant

2
répondu StefanHa 2014-07-25 12:07:29

J'ai le même problème dans VS2013, la solution que j'ai trouvée était de créer un nouveau projet d'application web vide peut copier les lignes suivantes dans mon ancien projet de site web: En haut:

<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />

<PropertyGroup>
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
  </PropertyGroup>
  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
  <Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
2
répondu learnerplates 2015-03-10 12:48:17

Cliquez avec le bouton droit sur le projet et sélectionnez Modifier (nom du projet).csproj. (par exemple modifier dans le bloc-notes) Recherchez Ajouter ce qui suit au-dessus de la ligne.

13.0 $(MSBuildExtensionsPath32) \ Microsoft\VisualStudio\v$(VisualStudioVersion) Enregistrer et recharger le projet.

Cela fonctionne vraiment pour moi, merci

2
répondu Pratham 2015-12-23 11:11:29

Pour Visual Studio 2017, il devrait être ajouté après le bloc dans le .fichier csproj, utilisez le bloc-notes et recherchez ".les cibles" pour le localiser...

J'ai créé un nouveau projet VS 2017 et cela fonctionne pour moi (sans avertissements):

  <PropertyGroup>
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
  </PropertyGroup>
  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
  <Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
  <Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
    <AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
  </Target>
2
répondu Yovav 2017-09-15 09:28:03

Même problème avec VS2017. Tu peux essayer ça, ça a marché pour moi.

  1. déchargez le projet et éditez le fichier csproj
  2. Recherchez le mot-clé " WebApplication.cibles "

     <Import Project="...\WebApplications\Microsoft.WebApplication.targets" ... >
    

    Commentez ou supprimez cette ligne.(peut-être deux lignes en fonction de "Condition")

  3. Enregistrer et recharger le projet

Dans cette étape, il vous demandera d'installer un paquet d'environ 500M...

Après cela, rechargez le projet, alors ça marche!

Je suppose que je manque juste un peu composants lorsque J'installe VS 2017.

Aussi, je remarque que le chemin MSBuild est assez différent dans VS2017, mais peut-être que ce n'est pas lié au problème parce qu'il utilise le chemin relatif dans le fichier csproj..

2
répondu Joey 2018-07-04 06:43:58

La solution de Sayed n'a pas fonctionné dans mon projet qui a été mis à niveau en utilisant VS2012. Mais cela a fonctionné

1
répondu Rush Frisby 2013-09-12 04:29:40

Si vous éditez dans VS2012 (Visual Studio 2012) un projet VS2010, essayez ceci. Modifier le fichier csproj à partir de:

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

Et changer pour:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets" />
1
répondu SushiGuy 2014-03-10 22:55:54

Puisque le problème ne peut pas être reproduit de mon côté, je voudrais vous suggérer d'essayer de réinstaller le SDK.

Veuillez essayer de supprimer complètement L'ancien SDK avant d'installer le nouveau.

Cordialement,

Ming Xu.

0
répondu Ming Xu - MSFT 2012-06-12 11:06:03

Même problème que J'ai corrigé. Veuillez vérifier si certains fichiers sont manquants dans la solution. si vous êtes confronté à une erreur comme Error - The target "GatherAllFilesToPublish" does not exist in the project., ouvrez simplement .fichier proj et supprimer cette ligne <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />

Vous obtenez une erreur réelle ou les fichiers manquants dans la solution

0
répondu Appasaheb Tawale 2018-03-01 15:54:40

J'ai rencontré ce problème avec VS 2017 et j'ai essayé de changer manuellement le fichier csproj comme suggéré ici et aucun des correctifs suggérés n'a fonctionné pour moi. J'ai couru à travers ce paquet nuget. De l'installation il a travaillé pour moi.

MSBuild.Microsoft.VisualStudio.Web.les cibles

0
répondu Buddy J 2018-07-11 17:50:44