2009-12-22 9 views
10

ich ein ASP.NET-Projekt, das die folgenden Verzeichnisse

\ Anzeigen
\ Fotos
Verwenden von virtuellen IIS-Verzeichnisse in Visual Studio Webanwendungsprojekte

beide diese Ordner Tausende von Dateien hat haben in ihnen, die häufig aktualisiert werden. Ich habe zur Zeit meine IIS einrichten wie

\ inetpub \ wwwroot \ foo
\ inetpub \ wwwroot \ foo \ Anzeigen
\ inetpub \ wwwroot \ foo \ Fotos
\ inetpub \ wwwroot \ foo.staging
\ inetpub \ wwwroot \ foo.staging \ Anzeigen
\ inetpub \ wwwroot \ foo.staging \ Fotos

ich erwäge dies in
drehen
\ in etpub \ wwwroot \ foo
\ inetpub \ wwwroot \ foo \ Anzeigen
\ inetpub \ wwwroot \ foo \ Fotos
\ inetpub \ wwwroot \ foo.staging
\ inetpub \ wwwroot \ foo.staging \ Anzeigen
\ inetpub \ wwwroot \ foo.staging \ Fotos
\ inetpub \ wwwroot \ foo.resources \ Anzeigen
\ inetpub \ wwwroot \ foo.resources \ Fotos

und Drehen der Unterverzeichnisse in foo und foo.staging in virtuelle Verzeichnisse, die auf das Unterverzeichnis foo.resources zeigen Ries. Auf diese Weise muss ich nicht alle Dateien in Anzeigen und Fotos kopieren, wenn ich im Bereitstellungsmodus spiele. Ist das eine schlechte Idee? Ich entwickle in Visual Studio 2008 - Gibt es eine Möglichkeit, VS dazu zu bringen, meine Webanwendungs-Projektunterverzeichnisse als virtuelle Verzeichnisse zu behandeln?

+0

Ich würde das auch gerne wissen. Wenn Sie zulassen, dass virtuelle Verzeichnisse innerhalb des Projekts liegen, kann ich die Website-Strukturen in der Produktionsumgebung genauer replizieren. – Russell

Antwort

0

Ich denke, der Weg dahin ist, es einzurichten, wie Sie es in IIS zuerst mit Ihren vdirs wollen, dann öffnen Sie die Website von IIS in Visual Studio. Siehe my answer bis this question.

+0

danke, das habe ich auch gesehen. das funktioniert für Websites, aber nicht Webanwendungen – kenwarner

2

Ein virtuelles Verzeichnis, das in einer Webanwendung in IIS enthalten ist, sieht in Visual Studio einfach wie ein Paket aus.

Wenn Sie die Root-App öffnen und auf das Paket klicken, sollten Sie gefragt werden, ob Sie die untergeordnete App/vdir zur Lösung hinzufügen möchten. Öffnen Sie es dann als zweites Projekt, Sie können dann darauf verweisen oder es nach Bedarf verbrauchen.

Die Idee hinter Test- und Live-Bereitstellungen ist, dass Sie separate Daten haben sollten, falls Ihre Tests etwas kaputt machen. Wenn Sie die Live-Daten zum Testen verwenden, müssen Sie sicher sein, dass Sie nichts löschen/ändern, was Sie nicht tun sollten, oder Sie werden Ihre Live-Kopie der Daten beschädigen.

Wenn Sie das gesagt haben, wenn alles, was Sie bauen möchten, etwas ist, das die Daten liest, ist dies eine großartige Idee, da Sie viel Speicherplatz und Zeit bei der Bereitstellung sparen.

Lassen Sie es so aussehen, wie Sie es in IIS zuerst wollen, dann öffnen Sie Dinge in VS.

Visual Studio behandelt alle auf dem Server definierten virtuellen Anwendungen als Unteranwendung. Wenn die Ressourcen in den untergeordneten Verzeichnissen nicht als Anwendung in IIS eingerichtet sind, sollte sie als normaler Ordner angezeigt werden.

Zum Beispiel ...

Wenn Sie Setup 2 Websites auf IIS und den physischen Ordner, um Ihre Bilder auf sowohl als virtuelle Verzeichnisse abzubilden, sollten Sie den Zugriff auf sie als normale Ordner haben, wenn Sie öffnen entweder in Visual Studio .

Wenn Sie jedoch die virtuellen Verzeichnisse in Anwendungen in IIS erstellen und dann die Website in VS öffnen, sollte nur ein Paket angezeigt werden. Wenn Sie darauf klicken, wird es als zweites Projekt in VS hinzugefügt.

Ich bin nicht der beste, Dinge zu erklären, aber hoffentlich machte das Sinn.

Hoffe, es hilft :)

0

ich ein ähnliches Problem mit meiner Anwendung sehen mit Bezug auf Lasten der Ressourcen, die beim Entfalten kopieren auf.
Ich überlege, einen Dateihandler zu erstellen, der Bildressourcen für den Browser bereitstellt. I.e. Wenn Sie mit Bildern verlinken, haben Sie etwas wie /filehandler.ashx?image=/ads/101/o3904838402384.jpg, dann können Sie einfach eine Konfigurationseinstellung haben, die auf verschiedene oder dieselben Dateispeicherordner für Test- und Live-Umgebungen verweist.

Hier ist ein Link zu den Grundlagen, wie es funktioniert.

http://dotnetperls.com/ashx-handler

0

Sie konnte, Verwendung verknüpften Ordner in Visual Studio = diese in einen Ordner in einem anderen Projekt eine virtuelle Verbindung erstellt (oder irgendwo anders auf der Disc), aber physikalisch kopieren Sie sie nicht auf der Festplatte.

+0

Paul, hast du das versucht? –

+0

Für kleine Dinge ja, ich habe nicht experimentiert mit etwas besonders kompliziert, aber das ist, wofür es gemacht wurde (afaik) – Paul

0

Eine andere Option ... Wenn Sie SVN verwenden und wenn Sie glücklich sind physisch zweimal die Bilder zu haben, auf der Festplatte, aber sie immer noch synchron haben, ist SVN Externals

+0

Paul, sollten Sie Ihre ursprüngliche Antwort bearbeitet haben, anstatt eine neue hinzuzufügen. –

+2

Aber sie sind verschiedene Antworten ... – Paul

0

zu verwenden, da diese Ressourcen Gibt es einen bestimmten Grund, warum Sie sie überhaupt in Visual Studio verwenden müssen? VS, IMO, dient zum Verwalten von Code in einer Lösung, nicht unbedingt in der Verzeichnisstruktur.

In IIS können Sie Ihre Verzeichnisstruktur genau so einrichten, wie Sie sie haben (oder sogar das virtuelle Verzeichnis auf ein Netzlaufwerk zeigen), und Visual Studio kann sie vollständig ignorieren, da es sich wahrscheinlich nur um eine Reihe statischer Dateien handelt .

+0

Jordan, es ist schön, in der Lage sein, die Bilder zu sehen, wenn Sie Design-Ansicht verwenden, und Visual Studio kann überprüfen, ob Ihre URLs gültig sind, aber nur wenn die Bilder tatsächlich auf der Festplatte vorhanden sind. –

Verwandte Themen