it-swarm.com.de

'Veröffentlichen fehlgeschlagen', aber Build erfolgreich abgeschlossen?

Wenn Sie in Visual Studio 2008 "Website veröffentlichen" erstellen, wird die Anwendung ordnungsgemäß erstellt. Ich erhalte jedoch die Meldung "Fehler beim Veröffentlichen":

enter image description here

Welche Gründe gibt es dafür und wie kann ich das verhindern?

40
Curt

Puoi provare questo:

  1. Es wird eine Vorab-Kompilierung für das Web durchgeführt.

  2. Löschen des Zielverzeichnisses (virtuelles Verzeichnis in IIS oder Dateiverzeichnis) und Verteilen des Zielverzeichnisses (Dell'applicazione Web).

Nella finestra di output è possible verificare in der Quale fase der Veröffentlichung der Site Web non riesce. Ad esempio, nella prima fase, se ci sono alcuni errori che si verificano solo alla precompilazione, ciò causerà il fallimento dello stage 1. Ad esempio, la directory virtuale IIS non è impostata sulla versione ASP.NET corretta o alcuni vecchi file sono bloccati e impediscono che vengano cancellati. Per lo più, la pubblicazione non riuscita sarà causata da IIS configureazione laterale come l'impostazione di autenticazione ....

Link alla fonte

Es ist möglich, im April das Finestra di Output Premendo zu startenCtrl+W,O.

16
NaveenBhat

Ich hatte das gleiche Problem. Albtraum, um das Problem zu identifizieren, da die Protokolle und Ausgaben keine Fehler oder Fehler anzeigen. Ich bekomme einfach "Build: 39 erfolgreich" und "Publish: 1 ist fehlgeschlagen".

Ich habe das Problem behoben, indem ich systematisch alle NuGet-Pakete nacheinander entfernte (und den darauf verweisenden Code entfernte), bis ich das fehlerhafte erkannt habe.

Das dauert lange!

Die Antwort war jedoch für mich Microsoft.Net.Compilers .

Keine Ahnung, wie ich damit in meinem Projekt gelandet bin, aber sobald ich das Paket entfernt habe, erscheint alles wieder in Ordnung. 

Bearbeiten - Dieses Problem tritt für VS 2008, 2012 und 2015 auf, aber nicht tritt 2017 auf.

49
SimonGoldstone

Manchmal müssen Sie VS als Administrator ausführen, um in das Zielverzeichnis schreiben zu können. 

Überprüfen Sie die Ausgabemeldungen. Sie sollten Ihnen helfen, das Problem zu lösen

8
Nick

Ich musste das Projekt nach C:\a\ kopieren und dann veröffentlichen. Ich vermute Probleme mit dem langen Weg. Seltsam, aber für mich gearbeitet. 

4
vt100

Nicht sicher, ob dies in verschiedenen Versionen von Visual Studio der Fall ist, aber zumindest in der Professional Edition 2015 tritt das Problem auf, wenn wir versuchen, alle Nuget-Pakete von der Lösung aus mit dem Package Manager zu aktualisieren. 

Wie von @SimonGoldstone ausgeführt, wird das Problem durch das Paket "Microsoft.Net.Compilers" verursacht. Standardmäßig wird das Paket der Lösung hinzugefügt, während eine neue Webanwendung erstellt wird. Die Standardversion 1.0.0 führt zu keinen Problemen. Ich konnte bis 2.4.0 mit den neuesten Versionen testen und alles funktioniert gut, aber ab 2.6.0 fängt alles an. Wenn ein Update unbedingt erforderlich ist, würde ich empfehlen, das vorgenannte Paket bis Version 2.4.0 zu aktualisieren. Nach einigen Recherchen scheint es, dass einige Fehler in späteren Versionen als 2.4.0 eingeführt und langfristig nicht behoben wurden. Interessant ist jedoch, wie dieses Problem in Nuget ohne grundlegenden Checkpunkt für die Qualitätskontrolle aufgenommen wird.

2
José Lugo

Die Schlussfolgerung ist: Versuchen Sie es mit einer anderen VS Edition und sehen Sie, ob es das tut.

Hier ist, was es für mich getan hat. 

Ich habe eine VS 2013 Pro- und eine Visual Studio 2015-Community. Ich benutze irgendwie das eine oder andere, um an meinem MVC-Projekt zu arbeiten, und alles war gut. Dann konnte der ganze VS 2013 nicht veröffentlicht werden, obwohl er gut gebaut werden würde. Es gab keine anderen Fehler als einige dumme ... Code wird nicht von allen Pfaden zurückgegeben ... 

Wenn ich es also in VS 2017 öffne, wurde dasselbe Projekt in Ordnung gebracht. Ich vermute ein Kompilierproblem - weil dies der Zeitpunkt war, an dem es versagen würde. 

Ich hoffe, das hilft Ihnen, etwas Zeit zu sparen. 

2

Ich bin heute auf dasselbe Problem gestoßen und es lag an der Datei Thumbs.db, die erstellt wurde, als ich meinen Bilderordner öffnete, um nach einem Bild zu suchen. Ich habe die Datei gelöscht und das Projekt erfolgreich bereitgestellt. Hoffe, das hilft jemandem in derselben Situation.

1
Tammy Spencer

Stellen Sie sicher, dass Sie den Zielordner vor der Veröffentlichung (manuell) leeren. Manchmal kann eine Datei nicht gelöscht werden, was zu einer fehlgeschlagenen Veröffentlichung führt

1
nvasquez

Überprüfen Sie das Project BIn-Verzeichnis. Es muss eine DLL Ihrer Seite oder Ihres Steuerelements geben. die während der Veröffentlichung neu erstellt werden muss. Also ausschließen oder entfernen

1
Dilshad

Hierfür gibt es viele Lösungsvorschläge. Ich denke, sie machen das Thema zu kompliziert. Ich fand, dass folgendes für mich funktioniert:

  1. Suchen Sie den Ordner obj (Release oder Debug) in Ihrer Projektmappe
  2. Löschen Sie im Release- oder Debug-Ordner den Inhalt des 'AspnetCompileMerge'-Ordners

Jetzt versuchen und veröffentlichen.

0
NeilR

Nachdem ich einen Neuaufbau versucht hatte, andere Projekte in meiner Projektmappe in der Lage waren, korrekt zu veröffentlichen, und meinen Veröffentlichungsort auf das Laufwerk C: (lokal verbunden) geändert hatte, anstatt auf ein zugeordnetes Netzlaufwerk zu pushen, gab es immer noch ein Problem, bei dem der einzige Fehler ausgegeben wurde sagte:

========== Build: 5 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
========== Publish: 0 succeeded, 1 failed, 0 skipped ==========

Meine Lösung zielt auf x86 ab, aber ich denke, während einer Git-Zusammenführung wurde bei diesem Projekt das Profil auf Beliebige CPU umgestellt. Nachdem ich ein x86-Profil für das Projekt erstellt hatte und es mit dem Ziel des Veröffentlichungsziels und der aktiven Lösungskonfiguration übereinstimmte, konnte ich es erneut erfolgreich veröffentlichen.

0
legistrate

Ich hatte das gleiche Problem mit VS2017 mit einem Website-Projekt. Build funktionierte, aber beim Publizieren gab es einen Fehler: Error CS0012: The type 'System.Net.Http.HttpMessageHandler' is defined in an Assembly that is not referenced. You must add a reference to Assembly 'System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Alle meine Projekte hatten bereits einen Verweis auf System.Net.Http, daher war es wirklich verwirrend.

Um das Problem zu beheben, musste ich die Datei "System.Net.Http.dll" in den Ordner " my website project/bin " kopieren, damit Publish sie finden und auf meinen Webhost kopieren konnte. Ich habe System.Net.Http.dll gefunden, indem ich die Referenzen eines anderen Projekts (eine Klassenbibliothek) und dann die Eigenschaften von System.Net.Http.dll durchsehe und den Pfad (C:\Programme (x86)\Reference Assemblies\Microsoft\Framework.NetFramework\v4.6\System.Net.Http.dll).

0

Bei mir war das einfach - der Ordner dist war gesperrt. Ich habe es durch einen Unlocker freigeschaltet und die Veröffentlichung wurde fortgesetzt.

0
imlarry

ich weiß, dass ich spät komme, aber ich denke, es sollte für jemanden verwendet werden, der nach dieser Abfrage sucht.

deinstallieren Sie einfach alle Ihre Nuget-Pakete, und bereinigen Sie die Lösung Klicken Sie auf "Veröffentlichen". Vergewissern Sie sich, dass sie funktioniert und Sie sehen, dass die Veröffentlichung beginnt und jetzt korrekt funktioniert

0
sathish v

Ich habe mehrere Benutzersteuerelemente, die in der Datei web.config registriert sind und einen ClassName im Header der .ascx-Datei haben. Bei normalen Builds funktioniert alles gut, aber bei einem Publish wurden diese Klassennamen nicht mehr erkannt. Irgendwann stellte ich fest, dass die Fehler nicht in meinen regulären Code-Dateien, sondern in Kopien in einem temporären Verzeichnis für die Veröffentlichung enthalten waren. 

Ich hatte "Vorkompilieren während der Veröffentlichung" aktiviert (zu finden unter "Einstellungen"> "Veröffentlichungsoptionen für Dateien"). Das Deaktivieren dieser Option hat für mich funktioniert.

0
macnerd

In meinem Fall wurde in einem Verzeichnis auf einem zugeordneten Netzlaufwerk veröffentlicht, aber das Fenster Output panel/gab an, dass der Speicherort nicht vorhanden war. Der Pfad war korrekt und das Laufwerk war vollständig zugänglich. Das Problem wurde von selbst behoben, wenn ich den Pfad für die Veröffentlichung in Visual Studio mithilfe der Schaltfläche ... neu einstellte.

0
Sam