11

Wenn ich Build-> Website in Visual Studio 2008 veröffentlichen, kompiliert die meiste Zeit die Website und fragt dann einfach "Alle Dateien im Zielordner werden gelöscht. Fortfahren?" (oder etwas in diesem Sinne). Gelegentlich, wenn ich ein Projekt in Visual Studio veröffentlichte, bekam ich jedoch ein Dialogfeld, das mir die Wahl gab, den Inhalt des Ordners vollständig zu ersetzen oder einfach geänderte Dateien durch eine neuere Version zu ersetzen.Wie kann ich die Funktion "Veröffentlichen" in Visual Studio 2008 verwenden, ohne den Inhalt des Zielordners zu löschen?

Ich ziehe es vor, zu veröffentlichen, ohne den Ordner vollständig zu löschen, weil die bereitgestellte Anwendung Benutzerdateien und Cache-Dateien erstellt, wie es verwendet wurde, die ich nicht zusätzliche Schritte zu erhalten möchten. Ich bin mir jedoch nicht sicher, warum Visual Studio mir diese Option nicht immer anbietet. Kann ich das irgendwo ändern? Ist es an die von mir verwendete .NET-Version gebunden?

Jeder Einblick wird geschätzt!

Bearbeiten - Followup auf 2009-01-20

Ich habe noch nicht herausgefunden, aber hier einige weitere Informationen.

Hier ist das veröffentlichen, was Funktion sieht aus wie für ein ASP.NET-Projekt auf meinem Win XP-Desktop:

Und hier ist, wie es auf meinem Vista Laptop für ein anderes Projekt sieht:

Beachten Sie die Radiobuttons im zweiten Screenshot, die es mir erlauben, entweder den Inhalt des Ordners vor der Veröffentlichung zu löschen oder nur Match zu überschreiben Dateien. Ich möchte diese Optionen für jedes Projekt haben.

Auf beiden Computern wird Visual Studio 2008 Professional (Version 9.0.30729.1 SP, gemäß Hilfe-> Info) ausgeführt. Die exakt gleiche Version. Und ich bezweifle, dass der OS-Unterschied diese Funktionsänderung verursacht. Irgendwo muss es irgendwo sein, oder? Weiß jemand?

Antwort

12

John ist richtig, der einzige Unterschied ist eines Ihrer Projekte ist ein Web Site Project und der andere ist ein Web Application project. Die Option "zum Konvertieren in Webanwendung" wird nicht angezeigt, es sei denn, Sie befinden sich in einem Webanwendungsprojekt. Ich weiß ... es ist sehr irreführend. Der Grund dafür liegt in der Art, wie Sie convert to a web application project.Wenn Sie vorhaben, es zu konvertieren (was ein richtiger Schmerz im Arsch sein kann, abhängig davon, wie es eingerichtet ist), dann müssen Sie einige Unterschiede beachten:

In einem Web-Anwendungsprojekt ist alles vor kompiliert alle Codebehind-Seiten werden in eine .dll kompiliert ---- In einer Website Projekt nichts im Projekt ist vorkompiliert, der Compiler wird alles kompilieren, um sicherzustellen, dass es gültig ist, aber keine der kompilierten Seiten hochgeladen werden . Wenn ein Benutzer zum ersten Mal versucht, auf die Site zuzugreifen, wird jede Seite in eine eigene DLL kompiliert. Dies bedeutet, dass Sie in einem Website-Projekt eine einzelne Codebehind-Datei hochladen können.

Namespaces - In einem webanwendungsprojekt Namespaces werden standardmäßig in einem Web-Site-Projekt sie erstellt sind es nicht. Sie müssen also möglicherweise einige Zeit hinzufügen, wenn Sie sie konvertieren möchten.

Projektdateien - werden Sie feststellen, dass A Website Project kein "cproj" hat ein Projekt Web Application Datei tut.

Ich habe ein paar dieser Projekte konvertiert ich finde sie ziemlich glatt, solange es nicht viel Code im Ordner "app_code" ist. Sie können es versuchen und sehen, wie einfach es ist, wenn es aussieht, als ob es ein Schmerz sein würde, würde ich vorschlagen FileZilla nur FTP und sparen Sie sich ein paar Kopfschmerzen.

Good Luck

0

Ich denke, die wirkliche Antwort auf Ihre Frage ist, dass Sie Ihre Benutzerdateien und Cache-Dateien woanders ablegen sollten.

Beim Veröffentlichen einer Website Visual Studio soll sicherstellen, dass der Zielordner Ihre Website-Dateien enthält, und absolut nichts anderes.

+0

Idealerweise ja. Aber ich bin nicht der einzige Entwickler in meiner Organisation und einige Dinge sind außerhalb meiner Kontrolle. –

0

Offenbar diese Funktion in VS2010 kommt - das ist, was Vishal Joshi auf der TechEd EMEA in Sitzung "PDC307: Microsoft Visual Studio 10: Web Development Futures" angekündigt

+0

Aber ich habe es schon in VS2008! Ich kann einfach nicht herausfinden, warum es für einige Projekte funktioniert und nicht für andere. –

+1

Es sieht so aus, als ob es sich um unterschiedliche Projekttypen handelt - einer ist eine Website oder ein Anwendungsprojekt und einer hat ein Web-Bereitstellungsprojekt. Die Sache ist, die Bereitstellung einer Website mit entweder wird immer noch alle Dateien, die nicht Teil des Projekts sind - die Vista wird nur nicht Dateien hochladen, die nicht geändert haben. –

3

Das Dialog für Website-Projekte und Webanwendungsprojekte unterscheidet . In meinen MVC-Projekten (Web-Anwendungsprojekte) sehe ich die zusätzlichen Optionen. In meinen regelmäßigen alten Webseitenprojekten sehe ich den ersten Dialog gepostet.

+0

Hmm ... das ist eine hilfreiche Beobachtung. Aber bist du sicher, dass das der einzige Unterschied ist? Ich bin mir ziemlich sicher, dass beide Projekte, die ich oben erwähnt habe, normale Webseitenprojekte sind. Die Option "Nicht überschreiben" hat die Option "In Webanwendung konvertieren" als Option, wenn ich mit der rechten Maustaste auf die Lösung klicke. –

+0

Auf meiner Maschine ist das der Unterschied. Verwenden Sie Webbereitstellungsprojekte oder ist es installiert? –

+0

Ich bin nicht sicher, warum dies abgelehnt wurde. Ich war es nicht. –

-2

Die Website von der Website wurde in der aktualisierten Schicht aktualisiert.

+1

Uhhh ... was? Ich verstehe nicht. –

1

Nicht sicher, ob diese Option für Sie geeignet ist, aber Sie könnten die Kopierwebsite-Funktion aus dem Lösungsexplorer verwenden. Klicken Sie oben im Lösungs-Explorer auf das Symbol "Website kopieren".