Visual Studio 2012 Web Publish kopiert keine Dateien


229

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


1
Das ist komisch. Wenn Sie den Veröffentlichungsordner / ... sehen, sollte er ordnungsgemäß funktionieren. Ich schlage vor, Sie überprüfen mit Ihrem Weg. Stellen Sie sicher, dass Sie am richtigen Ort suchen.
Maxisam

14
Dies ist mir unter Windows 8 mit Visual Studio 2012 passiert. Ich habe gerade ein neues Veröffentlichungsprofil erstellt und es funktioniert! Wahrscheinlich ein Fehler in VS 2012 .: /
T.Ho

3
Ich hatte das gleiche Problem. Das Löschen und Neuerstellen des Veröffentlichungsprofils hat mir geholfen.
Tommy Jakobsen

3
Das Löschen und Neuerstellen von Profilen hat mir geholfen.
Michael Wells

3
Dies wurde weder in Visual Studio Update 2 noch in Update 3 behoben. Überprüfen Sie die beliebteste Antwort nach der "akzeptierten Antwort" (was nicht die Lösung ist). Bearbeiten Sie einfach das Profil und wählen Sie auf der Registerkarte "Einstellungen" die richtige Konfiguration aus der Liste aus (wenn die Version die richtige ist, wählen Sie Debuggen, Speichern, dann erneut bearbeiten und Release auswählen). Speichern und veröffentlichen.
Firepol

Antworten:


78

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:

Gepostet von Microsoft am 13.06.2012 um 12:00 Uhr Hallo Andrew,

Dies war ein Fehler im Umgang mit der Lösungskonfiguration im Vergleich zur Projektkonfiguration. Wir haben fälschlicherweise angenommen, dass sie gleich sind (z. B. würde in Release | x86 von Solution für jedes Projekt auch Release | x86 festgelegt sein), was dazu führte, dass wir die falschen Build-Eigenschaften zum Veröffentlichen von Dateien verwendeten.

Die Problemumgehung besteht darin, die Lösungskonfiguration und die Build-Konfiguration anzupassen. Dieses Problem wird in der nächsten Version von Visual Studio 2012 behoben.

Vielen Dank - Jimmy Lewis SDET, Visual Web Developer Team


8
Dieses Problem tritt bei einem neuen Visual Studio 2012-Projekt auf. Es wurde in der Vergangenheit über FTP veröffentlicht, aber jetzt, wenn ich versuche, es zu veröffentlichen, funktioniert es genau wie oben - es gibt vor, sagt, es war erfolgreich und pusht nichts. Die Ausgabe wird zwar in das Objektverzeichnis erstellt, jedoch nie auf den Server kopiert. Der Trick zum Ändern der Konfiguration behebt das Problem jedoch.
Chris Moschini

12
Hallo! Es ist immer noch in SP2 kaputt!

6
Ich hatte gerade das gleiche Problem und stellte fest, dass die Veröffentlichungseinstellungen standardmäßig "Beliebige CPU" sind, meine Lösung jedoch auf "x86" eingestellt ist. Durch Ändern der Einstellungen in Publish auf x86 wurde das Problem behoben.
Sam

Keine der oben genannten Lösungen funktioniert für mich. Profile löschen und neu erstellen, Konfiguration ändern und zurück ändern, VS neu starten, alles neu erstellen usw. Ich habe in meiner App eine neue Ansicht erstellt. Es ist da. Ich kann es sehen. Wenn ich lokal laufe, wird es angezeigt. Wenn ich veröffentliche, ist es nicht da. Ich habe Update 4.
Robert

Das einzige, was für mich funktioniert, ist das Löschen meiner Ansicht aus dem Projekt und das erneute Hinzufügen. Scheint die IDE zu wecken, dass hier etwas Neues ist. Überall dort, wo VS Projektadditionen und -subtraktionen verfolgt, kann dies beteiligt sein.
Robert

104

Gleiches Problem. Die Problemumgehung bestand darin, die Veröffentlichungseinstellungen von Release auf Debug zu ändern. Neu veröffentlichen und dann wieder zu Release wechseln ...


JA! Das ist die gute Antwort. In meinem Fall verwende ich nicht die Standardprofile "Release" oder "Debug", sondern "DEV", "STAGE" und "LIVE". Ich habe gesehen, dass z. B. für STAGE auf einem Kollegen, der meine Lösung über TFS heruntergeladen hat, das Profil fälschlicherweise auf "Release" gesetzt wurde (dasselbe gilt für alle anderen Profile). Also musste ich es einfach korrigieren und auf "STAGE" (oder DEV / LIVE für die anderen) zeigen. Die Veröffentlichung hat funktioniert. Danke dir.
Firepol

Lief wie am Schnürchen. Dieser sollte die akzeptierte Antwort sein.
Aycan Yaşıt

39

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 .pubxmlDatei und nicht die .publxml.userDatei. Daher wird die .publxml.userDatei beim Öffnen des Projekts im laufenden Betrieb erstellt . Wenn es das neue .publxml.userim laufenden Betrieb erstellt, sieht die XML wie folgt aus:

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
</Project>

Wenn Sie ein neues Profil erstellen, wird eine XML-Datei erstellt, die wie folgt aussieht:

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <TimeStampOfAssociatedLegacyPublishXmlFile />
    <EncryptedPassword />
  </PropertyGroup>
</Project>

Wenn Sie den <PropertyGroup>Knoten nehmen und in die .pubxml.userDatei einfügen, funktionieren Ihre PublishProfiles wieder.


5
+1 Das schien mir. Es macht es etwas einfacher, wenn Sie die beiden Dateien öffnen und vergleichen, nachdem Sie ein neues Profil erstellt haben. Ich fand auch, dass beide Dateien in die Quellcodeverwaltung eingecheckt werden mussten, wenn man in einem Team arbeitete.
Deano

@Deano Das Problem beim Einchecken einer * .user-Datei besteht darin, dass Sie nicht mehr in der Lage sind, einzelne (lokale) Projekte anzupassen. Der Zweck der Benutzerdatei besteht darin, einzelnen Teammitgliedern die Möglichkeit zu geben, ihre eigenen lokalen Einstellungen vorzunehmen.
Dave Riedl

Gibt es eine andere Lösung, anstatt die Datei ".pubxml.user" zur Quellcodeverwaltung hinzuzufügen?
Ubikuity

Wir legen keine * .user-Dateien in die Quellcodeverwaltung fest, verwenden jedoch im Übrigen nicht das Veröffentlichungsprofil in Visual Studio, da unser Continuous Integration-Server und Build-Prozess all das verwaltet ...
Brett Rigby

21

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


Dies funktioniert für mich. Ich habe die Profile auf dem lokalen Computer gelöscht und neu erstellt. Dies hat keine Auswirkungen auf die anderen Entwicklungsmaschinen.
Jean Jimenez

Ich hatte dieses Problem beim Umschalten des Projekts von vs2013 auf vs2012 und dies hat das Problem vollständig behoben
NikiUsefi

Das hat bei mir funktioniert. Ich habe diese Schritte verwendet, um mein (Dateisystem-) Veröffentlichungsprofil neu zu erstellen: stackoverflow.com/a/20616521/381082
DeveloperDan

9

Ich hatte den gleichen Fehler und ändere die Einstellung von Release auf Debug und das Problem wurde behoben.


8

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 :

Ein Problem, das ich vor einiger Zeit hatte und dachte, ich sollte dokumentieren, war, dass bestimmte Dateitypen nicht hochgeladen wurden, als ich mein Projekt veröffentlichte.

Die fraglichen Dateitypen waren PDF-Dateien und RTF.

Der Grund dafür war, dass diese Dateierweiterungen nicht als publikationsbedürftig von Visual Studio erkannt wurden. Glücklicherweise kann dies in Visual Studio geändert werden.

Wählen Sie die Datei (en) aus, die nicht kopiert werden. In Eigenschaften sorgen dafür , dass Build Action eingestellt ist Inhalt .

Wenn dies nicht funktioniert, können Sie Folgendes versuchen.

Wählen Sie im Menü Projekt die Option Paket / Web veröffentlichen und beachten Sie diese Dropdown-Liste:

Geben Sie hier die Bildbeschreibung ein

Versuchen Sie, dies in Alle Dateien in diesem Projektordner zu ändern.


Dies funktionierte für meine Situation - als nur EINIGE der Dateien veröffentlicht wurden.
AndrewRalon

Dies funktionierte nur, weil Dateien nicht ordnungsgemäß im Projekt enthalten waren. Siehe diese Antwort unten für die Grundursache und Lösung: stackoverflow.com/a/40721544/3520070
AndrewRalon

Welche Antwort meinst du unten?
Tomas Kubes

7

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:

<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>

Fügen Sie diese in Ihre .pubxml ein und Sie sollten bereit sein zu gehen.


7

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".


Ja, das hat letztendlich auch bei mir funktioniert (habe alle anderen Vorschläge oben ausprobiert). Dies ist mit vs2010
Karen

5

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.


Die gleiche Problemumgehung war auch für mich die einzige Lösung. Schritte zur Verdeutlichung: Erstellen> Veröffentlichen. Wählen Sie links die Registerkarte Einstellungen. Ändern Sie die Build-Konfiguration in etwas anderes. Sie werden sehen, dass neben dem Namen des Veröffentlichungsprofils jetzt ein Sternchen (*) angezeigt wird - ein Zeichen dafür, dass der Fehler vereitelt wurde. Ändern Sie die Build-Konfiguration wieder in die gewünschte Konfiguration. Fahren Sie wie gewohnt mit Veröffentlichen fort. Fest.
Chris Moschini

4

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.


2
Wir hatten dieses Problem, das anscheinend mit der Datei pubxml.user im Ordner PublishProfiles unter Mein Projekt zusammenhängt - meine hatte eine maschinengenerierte Liste von Dateien, die veröffentlicht werden sollten, obwohl die Dokumentation angegeben ist, dass diese Datei nur für bestimmte Einstellungen bestimmt ist ( und wird daher nicht in die Quellcodeverwaltung gestellt). Ich konnte okay veröffentlichen. Mein Kollege hat eine neue Kopie unseres Quellcodes erstellt und konnte diese nicht veröffentlichen. Als seine Datei pubxml.user generiert wurde, wurden keine Dateien aufgelistet. Wir haben die aktualisierte Webveröffentlichung deinstalliert und alles ist wieder in Ordnung.
Nick

4

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".


Dies sollte an der Spitze sein
JoeBrockhaus

Dies ist jetzt mit Visual Studio 2012 Update 3
KoalaBear

4

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.


4

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. Geben Sie hier die Bildbeschreibung ein


DAS WAR'S! Das Projekt hatte viele Dateien, die in die Quellcodeverwaltung eingecheckt wurden, aber wie Nonein 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. : D
AndrewRalon

3

Gleiches 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.


1

Diese Aktion war für mich erfolgreich:

Beenden Sie Veröffentlichungsprofile unter "Eigenschaften> Veröffentlichungsprofile> xxxx.pubxml" und setzen Sie sie erneut.


1

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 ):

function copy-deployable-web-files($proj_path, $deploy_dir) {
  # copy files where Build Action = "Content" 
  $proj_dir = split-path -parent $proj_path
  [xml]$xml = get-content $proj_path
  $xml.Project.ItemGroup | % { $_.Content } | % { $_.Include } | ? { $_ } | % {
    $from = "$proj_dir\$_"
    $to = split-path -parent "$deploy_dir\$_"
    if (!(test-path $to)) { md $to }
    cp $from $to
  }

  # copy everything in bin
  cp "$proj_dir\bin" $deploy_dir -recurse
}

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.


1

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


1

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:

  • Wählen Sie in der VS-Symbolleiste eine bestimmte Konfiguration aus, z. B. Release und Beliebige CPU. Führen Sie das Projekt aus.
  • Klicken Sie anschließend im Projektmappen-Explorer mit der rechten Maustaste auf die betreffende Lösung und wählen Sie Veröffentlichen. Erstellen Sie ein neues Veröffentlichungsprofil oder verwenden Sie ein bestimmtes, stellen Sie jedoch immer sicher, dass in den Einstellungen dieselbe Konfiguration (z. B. Release und Beliebige CPU) ausgewählt ist, bevor Sie das Projekt das letzte Mal ausführen.
  • Außerdem musste in meinem Fall der OBJ- Ordner gelöscht werden, da hier die Einstellungen meiner letzten erfolglosen Veröffentlichungsversuche hängen blieben, obwohl ich VS neu gestartet und alle Veröffentlichungsprofile gelöscht habe.

0

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:

1>------ Build started: Project: Project, Configuration: DeployProduction Any CPU ------
1>  
2>Publishing folder /...
========== Build: 1 succeeded, 0 failed, 9 up-to-date, 0 skipped ==========
========== Publish: 1 succeeded, 0 failed, 0 skipped ==========

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.


0

In Visual Studio 2012 verursacht das Wechseln zwischen Releases immer noch Probleme.

Wir haben ein Pre-Build-Ereignis hinzugefügt, um den objOrdner zu löschen. del /s /f /q $(ProjectDir)\objDas Problem beim Veröffentlichen wurde behoben. Die Reinigung funktioniert manchmal, aber nicht immer.


0

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.


0

Ü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


0

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 :

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

dazu :

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

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.)


Ich habe eine Situation, in der ein oder zwei Dateien übersehen und nicht auf dem Server veröffentlicht werden, aber meine .vbproj-Datei enthält bereits beide von Ihnen vorgeschlagenen <Import> -Elemente
bkwdesign

0

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:

"C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\SvcUtil.exe" /language:CS http://myservice /namespace:*,My.Namespace

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.


0

Ich habe das gleiche Problem. Keine der oben genannten Lösungen hat bei mir funktioniert.

Daher habe ich die Dateien ausgeschlossen, die beim Veröffentlichen nicht kopiert werden konnten.


0

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.

  1. Der Veröffentlichungsassistent zeigt alle Fehler beim Veröffentlichen an, kopiert jedoch keine Datei in den Zielordner.

  2. 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.

  3. Wenn Sie nun versuchen zu veröffentlichen, erhalten Sie den Dateinamen, der Fehler enthält.

  4. Beheben Sie einfach den Fehler im ursprünglichen Website-Ordner und versuchen Sie, ihn zu veröffentlichen. Er funktioniert wie zuvor.


0

Führen Sie die folgenden Schritte aus, um das Problem zu beheben:

Build > Publish > Profile > New

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.


0

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.

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Ein Neustart von Visual Studio nach dem Ändern der temporären Variablen reichte nicht aus, sondern musste das System neu starten.


-1

Zuerst:

  • Integrierte Release-Konfiguration.
  • Wählen Sie unter Projekteigenschaften-> Seite Alle Dateien und Ordner unter Paket / Web veröffentlichen aus.
  • Lösung neu erstellen (nach sauberer Lösung).
  • jetzt veröffentlichen.

Überprüfen Sie beim Veröffentlichen erneut, was Sie ausgewählt haben.
das sollte es tun. Es hat für mich getan! :)


-2

Am einfachsten ist,

   1. select the file(s) that are not being copied,
   2. Press <F4> to get the properties window
   3. Make the "Build Action" property "compile" or "content" depending on what it is.
   4. Now this particular file will be included!
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.