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 (à l'aide du déploiement de 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
Les gars, je suis vraiment désolé que vous rencontriez ce problème.
Je pense que je sais quel est le problème. Lorsque vous installez les bits Azure SDK, il installe certaines mises à jour VS Web Publish. L'une d'elles met à jour le fichier dans C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets. En fonction de 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 n'est pas mis à jour.
Pour résoudre ce problème, vous devez pouvoir suivre les étapes ci-dessous:
Pouvez-vous l'essayer et me faire savoir si cela fonctionne ou non?
J'ai eu ce problème, et il a été résolu en ajoutant:
<Target Name="GatherAllFilesToPublish">
</Target>
dans le fichier de projet. Je n'ai toujours aucune idée de ce qui se passe.
Cela a fonctionné pour moi correction - rassembler tous les fichiers pour publier l'erreur
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
Ajoutez 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>
Enregistrer et recharger le projet.
La suppression de ces installations a résolu le problème pour moi:
J'ai rencontré un problème similaire lorsque je voulais publier mon application ASP.Net sur Windows Azure. Après de nombreux essais et erreurs, la solution this a fonctionné pour moi. Cela ne nécessite aucun renommage de fichiers ni aucune installation/réinstallation de correctifs/correctifs. Voici ce que vous devez faire:
Ouvrez le fichier de projet ASP.Net (.csproj) dans Wordpad/Bloc-notes et recherchez la ligne similaire à 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" />
J'ai rencontré ce problème avec VS 2017 et j'ai essayé de modifier manuellement le fichier csproj comme suggéré ici et aucune des corrections suggérées n'a fonctionné pour moi. J'ai rencontré ce paquet de pépites. L'installation a fonctionné pour moi.
Je m'en rends compte 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'ait pas été mis à niveau correctement.
Il y a des références à VS v10.0, dans le fichier csproj, mais j'utilise 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".
Voici 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 j'ai 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!
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 cependant dans le répertoire v10.0.
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets.
Le fichier d'origine qui s'y trouvait était daté du 18 janvier 2011, après l'avoir renommé avec une extension .bak puis réinstallé KB2591016, la publication semble fonctionner à nouveau. La nouvelle date du fichier Microsoft.WebApplication.targets est désormais le 11 août 2011.
Même problème avec VS2017. Vous pouvez essayer ça, ça a marché pour moi.
recherchez le mot clé "WebApplication.targets"
<Import Project="...\WebApplications\Microsoft.WebApplication.targets" ... >
COMMENTER ou SUPPRIMER cette ligne (peut-être deux lignes en fonction de "Condition")
Dans cette étape, il vous sera demandé d'installer un paquet d'environ 500M ...
Après cela, rechargez le projet, alors ça marche!
Je suppose que je manque juste certains composants lorsque j'installe VS 2017.
Je remarque également que le chemin MSBuild est assez différent dans VS2017, mais ce n'est peut-être pas lié au problème car il utilise le chemin relatif dans le fichier csproj ..
J'ai eu du mal avec le même problème avec Visual Studio 2013 (et 2015).
La solution cruciale 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 le <PropertyGroup>
directive:
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
Remarque: mon fichier de projet fait également référence à la version v10.0 du Microsoft.WebApplication.targets
fichier, mais cela semble correct.
J'ai eu la même erreur. D'une manière ou d'une autre, cette ligne manquait.
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
Ajouté juste en dessous
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
Fonctionne bien maintenant
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
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 en copiant 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" />
Pour Visual Studio 2017 - il doit être ajouté après le bloc dans le fichier .csproj, utilisez le bloc-notes et recherchez ".targets" pour le localiser ...
J'ai créé un nouveau projet VS 2017 et cela fonctionne pour moi (sans avertissement):
<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>
La solution de Sayed n'a pas fonctionné dans mon projet qui a été mis à niveau à l'aide de VS2012. Mais cela a fonctionné
Si vous modifiez dans VS2012 (Visual Studio 2012) un projet VS2010, essayez ceci. Modifiez le fichier csproj à partir de:
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
Et changez pour:
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets" />
Même problème que j'ai résolu. Veuillez vérifier si certains fichiers manquent dans la solution. si vous rencontrez une erreur comme Error - The target "GatherAllFilesToPublish" does not exist in the project.
Ensuite, ouvrez simplement le fichier .proj et supprimez cette ligne <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
Vous obtenez une erreur réelle ou ces fichiers manquants dans la solution
Étant donné que 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.
Meilleures salutations,
Ming Xu.