Ich habe ein Webanwendungsprojekt in VS 2012 und wenn ich das Web Publishing-Tool verwende, wird es erfolgreich erstellt, kopiert jedoch keine Dateien auf das Veröffentlichungsziel (in diesem Fall Dateisystem).
Wenn ich mir die Build-Ausgabe ansehe, kann ich sehen, dass alles korrekt nach obj \ Release \ Package \ PackageTmp \ kopiert wird, aber dann sehe ich in der Build-Ausgabe nur Folgendes:
4> Fertig Bauprojekt "{Project} .csproj".
4> Vorhandene Dateien löschen ...
4> Ordner veröffentlichen / ...
4> ========== Build: 3 erfolgreich, 0 fehlgeschlagen, 1 aktuell, 0 übersprungen ===== =====
========== Veröffentlichen: 1 erfolgreich, 0 fehlgeschlagen, 0 übersprungen ==========
Obwohl die Veröffentlichung erfolgreich war, befinden sich keine Dateien im Zielverzeichnis für die Veröffentlichung.
Ich habe dies in mehreren Projekten gesehen und manchmal scheint es, dass die Lösungs- / Plattformkonfigurationen dieses Problem verursachen, aber ich konnte keine genaue Ursache dafür ermitteln.
Hat jemand anderes dies gesehen oder eine Idee, wie dies richtig funktioniert?
AKTUALISIEREN:
Möglicherweise habe ich eine Problemumgehung dafür gefunden. Ich hatte dies gerade wieder und ich habe mit den Veröffentlichungseinstellungen herumgespielt. Nachdem ich die ausgewählte Konfiguration auf der Registerkarte "Einstellungen" in eine andere Konfiguration und dann wieder in die Konfiguration geändert hatte, die ich verwenden wollte, wurden alle meine Dateien erneut veröffentlicht. Hoffentlich funktioniert dies in Zukunft bei anderen Projekten.
UPDATE 2:
Ich habe einen Fehler in Microsoft Connect gepostet und von einem Entwickler im VS Web Developer-Team gehört. Er sagte, dass sie dieses Problem in ihren internen Builds behoben haben und bald ein Update für das Veröffentlichungstool veröffentlichen werden, das dieses Problem beheben wird.
UPDATE 3:
Dies wurde kürzlich mit Visual Studio 2012 Update 2 behoben
Antworten:
Dies kann durch Lösungen / Projekte verursacht werden, die mit dem RC von vs2012 erstellt wurden. Dies ist mir vor Monaten passiert und hat das Problem behoben, indem sichergestellt wurde, dass meine Lösungskonfigurationen mit meinen Projektkonfigurationen übereinstimmen ...
Ich habe kürzlich das gleiche Problem beim Öffnen derselben Lösung festgestellt, die ursprünglich in vs2012RC mit VS2012 Express for Web erstellt wurde. Ich habe genau das getan, was das Originalplakat vorschlug, und es hat mein Problem behoben.
Hier ist der Thread, der mich zur Antwort führte:
connect.microsoft.com/VisualStudio/feedback/details/746321/publish-web-application-fails
Die relevante Antwort aus dem obigen Gespräch, die mir geholfen hat, war:
quelle
Gleiches Problem. Die Problemumgehung bestand darin, die Veröffentlichungseinstellungen von Release auf Debug zu ändern. Neu veröffentlichen und dann wieder zu Release wechseln ...
quelle
Um das etwas weiter zu bringen. Sie haben zwei Dateien, die beim Erstellen eines Veröffentlichungsprofils erstellt werden.
NewProfile.pubxml
NewProfile.pubxml.user
Wenn Sie ein Projekt mit diesen Dateien im Ordner PublishProfile über ein Quellcodeverwaltungselement öffnen, enthält es nur die
.pubxml
Datei und nicht die.publxml.user
Datei. Daher wird die.publxml.user
Datei beim Öffnen des Projekts im laufenden Betrieb erstellt . Wenn es das neue.publxml.user
im laufenden Betrieb erstellt, sieht die XML wie folgt aus:Wenn Sie ein neues Profil erstellen, wird eine XML-Datei erstellt, die wie folgt aussieht:
Wenn Sie den
<PropertyGroup>
Knoten nehmen und in die.pubxml.user
Datei einfügen, funktionieren Ihre PublishProfiles wieder.quelle
Eine einfache Lösung besteht darin, Ihr Veröffentlichungsprofil zu löschen und ein neues zu erstellen.
Wenn Sie mit der rechten Maustaste auf Ihre Lösung klicken und "Veröffentlichen" auswählen, wird ein Profil festgelegt. Löschen Sie diese und erstellen Sie eine neue.
Dies wird es beheben.
Ich hatte dieses Problem beim Wechsel von 2010 nach 2012
quelle
Ich hatte den gleichen Fehler und ändere die Einstellung von Release auf Debug und das Problem wurde behoben.
quelle
Ich hatte das gleiche Problem, aber keine der Antworten in diesem Thread funktionierte für mich. Mein Problem war, dass es ein Verzeichnis gibt, das dynamisch generierte (von meiner App) statische HTML-Dateien enthält. Das gesamte Verzeichnis wurde nicht veröffentlicht.
Die Lösung, die für mich funktioniert hat, wurde hier gefunden :
quelle
Dies liegt daran, dass die Datei .pubxml.user die zum Veröffentlichen erforderlichen Informationen enthält und diese Datei nicht in der Quellcodeverwaltung enthalten ist (und auch nicht sein sollte). Kopieren Sie die Informationen aus der Datei .pubxml.user in die Datei .pubxml, um diesen VS-Fehler zu beheben. Die relevanten Eigenschaften sind:
Fügen Sie diese in Ihre .pubxml ein und Sie sollten bereit sein zu gehen.
quelle
Ich habe alle diese Lösungen ausprobiert, aber dies ist die, die jedes Mal funktioniert.
Wir ändern einfach die "Publish-Methode:" von "File System" in "Web Deploy" und ändern sie sofort wieder in "File System".
quelle
Ich habe (hatte) das gleiche Problem für mehrere Projekte. Die einzigen Treffer scheinen Webprojekte zu sein. Das Löschen und Neuerstellen des Profils löst das Problem nur einmal. Darüber hinaus ergibt der Vergleich der generierten Publishxml keine Unterschiede, sodass es überhaupt nicht mit dem Profil zu tun zu haben scheint.
Die von OP erwähnte Problemumgehung zum Ändern von Build-Problemen scheint derzeit die einzig verlässliche Lösung zu sein.
quelle
Ich habe in VS 2010 das gleiche Problem festgestellt, nachdem ich die Veröffentlichungsausgabe, Ereignisprotokolle, das Aktivieren und Überprüfen von Visual Studio-Protokollen usw. überprüft hatte. Dann habe ich beschlossen, die Webveröffentlichung (über Hinzufügen / Entfernen) zu entfernen, von der ich glaube, dass sie kürzlich auf Version 1 aktualisiert wurde. 0,30810,0. Dies löste das Problem.
quelle
Hier hatten wir das gleiche Problem.
Wir ändern einfach die "Publish-Methode:" von "File System" in "Web Deploy" und ändern sie sofort wieder in "File System".
quelle
Folgendes hat bei mir funktioniert:
Wechseln Sie einfach von Release> Debug> Release (oder umgekehrt) und veröffentlichen Sie dann.
Sie müssen nichts löschen, bearbeiten oder veröffentlichen, was Sie nicht benötigen.
quelle
Mein Problem lag in der falschen Konfiguration der Datei myproject.csproj. Die Datei '_address-step1-saved.cshtml' wurde beim Veröffentlichen nicht kopiert. 'Keine' wurde in 'Inhalt' geändert, jetzt ist es in Ordnung.
quelle
None
in der .csproj-Datei markiert waren oder vollständig im Projekt fehlten (dort aber nicht "verwendet")! Dies erklärt vollständig , warum das lokale Ausführen immer funktioniert hat, das Veröffentlichen jedoch nie. : DGleiches Problem mit VS 2012 Pro mit einem Veröffentlichungsziel für Datenträger. Das Projekt wurde früher korrekt veröffentlicht, hat jedoch mit diesem Problem begonnen, bei dem die Dateien nicht in den Zielordner kopiert werden konnten.
Die Lösung bestand darin, das Veröffentlichungsprofil zu bearbeiten, den Modus von Release (Beliebige CPU) auf Debuggen und dann wieder auf Release (Beliebige CPU) zu ändern. Dadurch wird die Datei PublishProfiles \ projname.pubxml.user neu geschrieben (wie oben beschrieben). Anscheinend wurden die Elemente LastUsedBuild, LastUsedPlatform und TimeStampOfAssociatedLegacyPublishXmlFile unter dem Eigenschaftsgruppenknoten hinzugefügt. Nach Abschluss der Veröffentlichung wird eine weitere ItemGroup mit einzelnen Dateien und Veröffentlichungszeiten hinzugefügt.
quelle
Diese Aktion war für mich erfolgreich:
Beenden Sie Veröffentlichungsprofile unter "Eigenschaften> Veröffentlichungsprofile> xxxx.pubxml" und setzen Sie sie erneut.
quelle
Für das, was es wert ist, habe ich es schließlich aufgegeben, mit Web Deploy zu kämpfen, damit es das tut, was ich wollte (kopierbare Dateien kopieren und sonst nichts), also habe ich es in PowerShell geschrieben und bin wirklich zufrieden mit dem Ergebnis. Es ist viel schneller als alles, was ich über MSBuild / Web Publish versucht habe, vermutlich weil diese Methoden immer noch Dinge taten, die ich nicht brauchte.
Hier ist das Wesentliche ( wörtlich ):
In meinem Fall rufe ich dies in einer CI-Umgebung (TeamCity) auf, aber es könnte auch leicht in ein Post-Build-Ereignis eingebunden werden.
quelle
Ich habe festgestellt, dass ich dieses Problem umgehen kann, indem ich den Zielspeicherort von obj / [release | stage | ..] in einen neuen Pfad außerhalb der Lösungsordner vollständig ändere, z. B. c: \ deploy. Es scheint, als ob VS 2012 verwirrt war und möglicherweise irgendwo während des Veröffentlichungsprozesses aufgab.
Matt
quelle
Hatte kürzlich in VS 2013 das gleiche Problem für ein MVC-Projekt, in das ich Umbraco CMS importiert habe. Ich konnte nicht veröffentlichen. Die obige Antwort half, obwohl ich eine Weile brauchte, um herauszufinden, was ich eigentlich in VS tun sollte. Es bedurfte einiger Recherchen, z. B. in MS-Blogs, um dies herauszufinden. Ich versuche es einfach zu sagen:
quelle
Ich habe eine Webanwendung mit mehreren anderen Projekten, auf die in der Lösung verwiesen wird. Ich habe in der Vergangenheit viele Male erfolgreich mit einer einzelnen Publish-Konfiguration bereitgestellt. Ich habe die Projektkonfiguration von Debug in Release für ein Projekt geändert, das in der Vergangenheit übersehen wurde. Beim nächsten Versuch habe ich diese Symptome festgestellt, bei denen die Veröffentlichung nur leise fehlschlägt - sie tut nichts und sagt, dass sie erfolgreich war:
Die einzige Möglichkeit, es wiederherzustellen, bestand darin, das Veröffentlichungsprofil zu löschen, Visual Studio zu schließen, um das Löschen des Löschvorgangs zu erzwingen, es erneut zu öffnen und das Veröffentlichungsprofil von Grund auf neu zu erstellen. Sobald ich das getan hatte, konnte ich wieder gut veröffentlichen.
Win8 VS2012, beschissener Laptop.
quelle
In Visual Studio 2012 verursacht das Wechseln zwischen Releases immer noch Probleme.
Wir haben ein Pre-Build-Ereignis hinzugefügt, um den
obj
Ordner zu löschen.del /s /f /q $(ProjectDir)\obj
Das Problem beim Veröffentlichen wurde behoben. Die Reinigung funktioniert manchmal, aber nicht immer.quelle
Ich habe die Antwort endlich selbst gefunden. Alle oben genannten Lösungen funktionieren bei mir nicht.
Was ich getan hatte, war, dass ich das Projekt auf Laufwerk verschiebe. C Ändere den Projektordner in einen kürzeren und boom es zu veröffentlichen.
Der Grund, warum es auf meiner Seite fehlgeschlagen ist, ist, dass ich einen sehr langen Projektnamen / eine sehr lange Hierarchie hatte.
C: \ Benutzer \ Benutzer \ Desktop \ Compliance-Managementsystem \ ComplianceIssueManagementSystem \ ComplianceIssueManagementSystem
Ich hatte daran gedacht, weil manchmal, wenn ich eine rar-Datei extrahierte, der Name / Pfad zu lang ist. Ich dachte, es wird das gleiche sein wie Visual Studio 2012 veröffentlichen. und das tut es!
hoffe es wird euch helfen.
quelle
Überprüfen Sie in Ihrem aktuellen Projekt, ob Sie eine Rückkopie mit demselben Klassennamen und einem anderen Seitennamen erstellt haben (der Klassenname erbt die kopierte Datei). Letztendlich wird das den Compiler verwirren !!!
CodeFile = "Consolidated.aspx.vb" Inherits = "Consolidated
quelle
Keine der oben genannten Lösungen hat bei mir funktioniert.
Ich habe jedoch festgestellt, dass von unseren fünf ASP.NET MVC-Projekten in unserer Hauptlösung vier das Bereitstellungspaket an der richtigen Stelle platziert haben, während eines es unter obj \ Debug belassen hat.
Ich habe die Projekte verglichen und eine Diskrepanz festgestellt. Die Lösung bestand darin, dies zu ändern :
dazu :
Nachdem ich diese Änderung vorgenommen habe, haben alle fünf Projekte ihre Bereitstellungspakete an der richtigen Stelle platziert.
(Entschuldigen Sie die langen Schlangen, aber ich konnte keinen besseren Weg finden, sie zu verdichten.)
quelle
Ich habe dies mit der von Visual Studio generierten Dienstreferenz festgestellt in Bezug auf die Gesamtpfadlänge zu lang wurden.
Kürzen Sie sie, indem Sie die Dienstreferenz mit svcutil.exe neu generieren und alle ursprünglichen Dienstreferenzdateien löschen.
svcutil kann folgendermaßen aufgerufen werden:
My.Namespace sollte durch den vorhandenen Namespace im generierten Service-Proxy (normalerweise in der Datei Reference.cs) ersetzt werden, um Kompilierungsfehler zu vermeiden.
http://myservice
sollte durch die Service-Endpunkt-URL ersetzt werden.quelle
Ich habe das gleiche Problem. Keine der oben genannten Lösungen hat bei mir funktioniert.
quelle
Ich hatte die Website mehrmals veröffentlicht. Aber eines Tages, als ich eine Aspx-Datei änderte und dann versuchte, die Website zu veröffentlichen, führte dies zu einem leeren veröffentlichten Ordner.
Bei meiner Problemumgehung habe ich eine Lösung gefunden.
Der Veröffentlichungsassistent zeigt alle Fehler beim Veröffentlichen an, kopiert jedoch keine Datei in den Zielordner.
Um herauszufinden, welche Datei den Fehler generiert, kopieren Sie einfach den Inhalt des Website-Ordners in einen neuen Ordner und starten Sie das Visual Studio mit dieser Website.
Wenn Sie nun versuchen zu veröffentlichen, erhalten Sie den Dateinamen, der Fehler enthält.
Beheben Sie einfach den Fehler im ursprünglichen Website-Ordner und versuchen Sie, ihn zu veröffentlichen. Er funktioniert wie zuvor.
quelle
Führen Sie die folgenden Schritte aus, um das Problem zu beheben:
Erstellen Sie ein neues Profil und konfigurieren Sie es mit denselben Einstellungen wie Ihr vorhandenes Profil.
Das Projekt wird nun korrekt veröffentlicht. Dies tritt häufig aufgrund eines quellengesteuerten Veröffentlichungsprofils von einem anderen Computer auf, der in einer neueren Version von Visual Studio erstellt wurde.
quelle
BEHOBEN - verschiedene angebotene Lösungen haben bei mir nicht funktioniert. Was für mich mit VS Community 2017, Windows Server 2012 R2, funktioniert hat , war, die TEMP- und TMP-Umgebungsvariablen für den Benutzer zu ändern und dann das System neu zu starten und erneut bereitzustellen (ein Neustart von VS war nicht ausreichend). In diesen temporären Variablen veröffentlicht VS die temporäre Version.
Ein Neustart von Visual Studio nach dem Ändern der temporären Variablen reichte nicht aus, sondern musste das System neu starten.
quelle
Zuerst:
Überprüfen Sie beim Veröffentlichen erneut, was Sie ausgewählt haben.
das sollte es tun. Es hat für mich getan! :)
quelle
Am einfachsten ist,
quelle