J'essaie de publier une application Web sur Visual Studio 2017. La génération réussit mais la publication échoue. En cas d'échec, une boîte de dialogue d'erreur s'affiche, indiquant "La publication a rencontré une erreur. La construction a échoué. Un journal de diagnostic a été écrit à l'emplacement suivant: .."
Voici ce que contient le fichier avec le journal:
System.AggregateException: One or more errors occurred. ---> System.Exception: Build failed. Check the Output window for more details. --- End of inner exception stack trace --- at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at Microsoft.VisualStudio.Web.Publish.PublishService.VsWebProjectPublish.<>c__DisplayClass41_0.<PublishAsync>b__2() at System.Threading.Tasks.Task``1.InnerInvoke() at System.Threading.Tasks.Task.Execute() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.VisualStudio.ApplicationCapabilities.Publish.ViewModel.ProfileSelectorViewModel.<RunPublishTaskAsync>d__116.MoveNext() ---> (Inner Exception #0) System.Exception: Build failed. Check the Output window for more details.
J'ai essayé d'exécuter l'application en tant qu'administrateur, mais cela ne fonctionne toujours pas. J'ai également recherché la référence Microsoft.Net.Compilers mais ce n'est pas dans mon projet.
C'est user11952046
réponse (que j'ai vue après avoir fait de nombreux essais avec VS) avec plus de détails.
J'ai rencontré la même erreur après avoir réalisé que mon profil de publication utilisait .NET Core 3.0 comme framework cible au lieu de 3.1 (tous les assemblys ciblaient 3.1). Pas sûr qu'il soit lié, mais j'ai également déplacé le contexte db + les migrations de l'assembly principal (qui contient Startup.cs).
Mon environnement de développement est VS2019.
Vérifiez que les travaux de publication sur Local IIS. Cela a nécessité une élévation du VS 2019 (admin).
Tout en étant élevé, j'ai publié sur le serveur Web cible (IIS) et cela a fonctionné comme prévu.
Fermé et redémarré sans élévation et publié à nouveau et cela a fonctionné.
Je ne sais pas ce qui s'est passé, mais je suppose que la publication avait une exigence unique de modifier un fichier qui avait besoin d'élévation.
tl; dr - effectuez au moins une publication à l'aide de VS2019 démarrée en tant qu'administrateur, puis vous pouvez publier en utilisant le mode non administrateur.
Jetez un œil au fichier FolderProfile.pubxml situé dans YourProject\Properties\PublishProfiles et assurez-vous que le terme est configuré avec la bonne version.
Désactiver Resharper a résolu le problème pour moi !!!
Voici comment le désactiver Comment puis-je désactiver ReSharper dans Visual Studio et le réactiver?
Certains blogs affirment également que la mise à jour des outils MSBILD résoudra le problème. Pour moi, la désactivation de Resharper a fonctionné.
Téléchargez la dernière version des outils MSBUILD à partir de https://www.visualstudio.com/downloads/#build-tools-for-visual-studio-2017 , exécutez-le, choisissez Modifier puis sélectionnez "Web outils de construction de développement "et" outils de construction de .NET Core ".
En fait, de nombreuses raisons peuvent provoquer ce problème. Il existe des conseils très utiles pour résoudre ce problème dans le forum ASP.NET. Vous pouvez suivre ces étapes. Ici est les étapes.
J'ai rencontré le même problème lors de la publication sur un Azure App Service. Pour moi, la fermeture de Fiddler a résolu le problème.
Il existe plusieurs causes à ce problème. J'avais déjà configuré le site Web IIS, ainsi que les bonnes autorisations pour l'utilisateur. De toute évidence, le projet a réussi avec succès sur ma machine locale. Le problème était que j'ai ajouté le chemin absolu de Windows sur 'Site section de chemin d'accès dans le profil de publication VS. Laissez ce champ vide!
Téléchargez LastVersion of MSBUILD Tools. Générez votre projet et sélectionnez Build + IntelliSense dans la liste d'erreurs et affichez le message Error s'il existe. et téléchargez System.Reflection.Emit depuis Nuget, essayez à nouveau de publier votre projet.
J'ai rencontré un problème similaire dans lequel je pouvais exécuter mon projet en mode débogage mais chaque fois que je voulais publier, j'ai rencontré le problème d'échec de la construction.
Je pense que cela aidera quelqu'un confronté au même problème
Si le chemin de votre projet est long, essayez de déplacer le projet vers un chemin plus court. Voici un exemple, changez le chemin du projet de C:\Users\xxxx\xxxx\xxxx\project1
à C:\Users\xxxx\project1
Pour moi, cela se passait comme j'avais Fiddler ouvert et VS n'aimait pas son certificat public; une fois que j'ai fermé Fiddler, la solution a été publiée avec succès.