Freigeben über


VSWebSite-Schnittstelle

Stellt Eigenschaften und Methoden für ein Websiteprojekt bereit.

Namespace:  VsWebSite
Assembly:  VsWebSite.Interop (in VsWebSite.Interop.dll)

Syntax

'Declaration
<GuidAttribute("70758CA4-91F8-46AD-80A7-73BC21BAE68B")> _
Public Interface VSWebSite
[GuidAttribute("70758CA4-91F8-46AD-80A7-73BC21BAE68B")]
public interface VSWebSite
[GuidAttribute(L"70758CA4-91F8-46AD-80A7-73BC21BAE68B")]
public interface class VSWebSite
[<GuidAttribute("70758CA4-91F8-46AD-80A7-73BC21BAE68B")>]
type VSWebSite =  interface end
public interface VSWebSite

Der VSWebSite-Typ macht die folgenden Member verfügbar.

Eigenschaften

  Name Beschreibung
Öffentliche Eigenschaft CodeFolders Ruft eine Auflistung von Ordnern ab, die in der Website als Codeordner konfiguriert sind.
Öffentliche Eigenschaft DTE Ruft einen Verweis auf das DTE2-Objekt ab, das dieses Websiteprojekt enthält.
Öffentliche Eigenschaft Project Ruft einen Verweis auf diese Website als ein Project-Objekt ab.
Öffentliche Eigenschaft References Ruft ein AssemblyReferences-Objekt ab, das Verweise auf Assemblys und Projekte für die aktuelle Website enthält.
Öffentliche Eigenschaft TemplatePath Ruft den vollständigen Pfad und den Namen des Ordners ab, der Vorlagen für Websiteelemente enthält.
Öffentliche Eigenschaft URL Ruft die URL ab, die verwendet wurde, um die Website zu öffnen.
Öffentliche Eigenschaft UserTemplatePath Ruft den Pfad zum Benutzervorlagenordner für neue Projektelemente ab.
Öffentliche Eigenschaft VSWebSiteEvents Ruft das VSWebSiteEvents-Objekt für die Website ab, das verwendet werden kann, um Ereignishandler hinzuzufügen.
Öffentliche Eigenschaft WebReferences Ruft ein WebReferences-Objekt ab, das Verweise auf die Webdienste enthält, die von der Website verwendet werden.
Öffentliche Eigenschaft WebServices Ruft ein WebServices-Objekt ab, das eine Auflistung von Webdiensten enthält, die von dieser Website verfügbar gemacht werden.

Zum Seitenanfang

Methoden

  Name Beschreibung
Öffentliche Methode AddFromTemplate Erstellt im Websiteprojekt ein neues ProjectItem.
Öffentliche Methode EnsureServerRunning Startet den ASP.NET Development Server falls notwendig und gibt die URL für die Website zurück.
Öffentliche Methode GetUniqueFilename Gibt einen Dateinamen zurück, der in dem angegebenen Ordner eindeutig ist, indem der angegebene Stammname und die Dateinamenerweiterung verwendet werden.
Öffentliche Methode PreCompileWeb Kompiliert die Website und schreibt die kompilierte Ausgabe in den angegebenen Ordner.
Öffentliche Methode Refresh Aktualisiert die Anzeige, damit Änderungen erfasst werden, die außerhalb von Visual Studio an der Website vorgenommen wurden.
Öffentliche Methode WaitUntilReady Blockiert alle Methodenaufrufe, bis die Ausführung von Hintergrundprozessen beendet ist.

Zum Seitenanfang

Hinweise

Verwenden Sie die VSWebSite-Schnittstelle, um ein Websiteprojekt entweder über ein Makro oder über ein Add-In für Visual Studio zu bearbeiten.

Zusätzlich zu den Eigenschaften und Methoden in dieser Klasse stehen weitere Eigenschaften für Websiteprojekte zur Verfügung, die die WebSiteProperties-Klasse verwenden.

Tipp

Die von dieser Klasse bereitgestellten Funktionen sind in den Visual Studio-Versionen ab Visual Studio 2005 verfügbar. Es steht in Visual Web Developer Express Edition nicht zur Verfügung.

Beispiele

Im folgenden Beispiel wird gezeigt, wie ein Add-In verwendet wird, um mit einem Visual Studio Websiteprojekt zu interagieren. Das Add-In verwendet Ereignishandler, um in das Ereignisprotokoll zu schreiben, wenn entweder ein Verweis auf eine Assembly oder ein Webverweis auf einen Webdienst zum Projekt hinzugefügt wird. Zusätzlich schreibt es eine Zusammenfassung jedes Websiteprojekts in eine Textdatei, wenn die Projektmappe geschlossen wird.

Sie führen das Beispiel aus, indem Sie das Gewusst wie: Erstellen von Add-Ins verwenden, um ein Add-In-Projekt zu erstellen und den gesamten Code in der entstehenden Datei Connect.cs mit dem Beispielcode zu ersetzen. Sie müssen auch einen Verweis auf die VsWebSite.Interop-Assembly erstellen.

[C#]

using System;
using System.IO;
using System.Collections;
using System.Diagnostics;
using Extensibility;
using EnvDTE;
using EnvDTE80;
using VsWebSite;

// The object for implementing an Add-in.
public class Connect : IDTExtensibility2
{
    private DTE2 _applicationObject;
    private AddIn _addInInstance;

    // Implements the constructor for the Add-in object.
    // Created by the Add-In Wizard
    public Connect()
    {
    }

    // Event method created by the Add-In Wizard.
    // Occurs when the Add-In connects with the application.
    public void OnConnection(object application, ext_ConnectMode 
        connectMode, object addInInst, ref Array custom)
    {
        _applicationObject = (DTE2)application;
        _addInInstance = (AddIn)addInInst;

        // Attach Solution event handlers
        _applicationObject.DTE.Events.SolutionEvents.Opened 
            += new _dispSolutionEvents_OpenedEventHandler
                (SolutionEvents_Opened);
        _applicationObject.DTE.Events.SolutionEvents.QueryCloseSolution 
            += new _dispSolutionEvents_QueryCloseSolutionEventHandler
                (SolutionEvents_QueryCloseSolution);
    }

    // Custom event method that occurs before a solution is closed.
    private void SolutionEvents_QueryCloseSolution(ref bool fCancel)
    {
        foreach (Project proj in _applicationObject.Solution.Projects)
        {
            // Make sure background compilation is finished
            ((VSWebSite)proj.Object).WaitUntilReady();

            System.Text.StringBuilder strBldr = 
                new System.Text.StringBuilder();

            strBldr.AppendLine("Summary for Web Site: " 
                + ((VSWebSite)proj.Object).URL);
            strBldr.AppendLine("Solution: " 
                + _applicationObject.Solution.FullName);
            strBldr.AppendLine("Web References:");
            foreach (WebReference wref in 
                ((VSWebSite)proj.Object).WebReferences)
                strBldr.AppendLine("    " + wref.Namespace);
            strBldr.AppendLine("Assembly References:");
            foreach (AssemblyReference aref in 
                ((VSWebSite)proj.Object).References)
                strBldr.AppendLine("    " + aref.Name);
            // list the files?

            ((VSWebSite)proj.Object).VSWebSiteEvents.WebReferencesEvents.WebReferenceAdded
                -= WebRefEvents_WebRefAdded;

            string strBody = strBldr.ToString();

            // Save the summary as a text file in the Web site.
            string fName = _applicationObject.FullName;
            fName = fName.Substring(0, fName.Length - 4);
            fName += "." + ((VSWebSite)proj.Object).GetUniqueFilename
                ("/", "ProjectSummary", ".txt");
            if (File.Exists(fName))
                File.Delete(fName);
            StreamWriter sw = File.CreateText(fName);
            sw.Write(strBody);
            sw.Close();
        }
    }

    // Custom event method that occurs when a solution is opened.
    private void SolutionEvents_Opened()
    {
        // When solution is opened, attach event handlers for projects
        foreach (Project proj in _applicationObject.Solution.Projects)
        {   // Only attach event handlers if it is a Web site
            if (proj.Object is VSWebSite)
            {
                ((VSWebSite)proj.Object).VSWebSiteEvents.WebReferencesEvents.WebReferenceAdded +=
                    new _dispWebReferencesEvents_WebReferenceAddedEventHandler
                    (WebRefEvents_WebRefAdded);
                ((VSWebSite)proj.Object).VSWebSiteEvents.AssemblyReferencesEvents.AssemblyReferenceAdded += 
                    new _dispAssemblyReferencesEvents_AssemblyReferenceAddedEventHandler
                    (AssemblyRefsEvents_AssemblyRefAdded);
            }
        }
    }

    // Custom event method that occurs when a Reference is added.
    private void AssemblyRefsEvents_AssemblyRefAdded(AssemblyReference AssemblyRef)
    {
        EventLog appLog = new EventLog();
        appLog.Source = "VSWSTest." + AssemblyRef.ContainingProject.Name;
        appLog.WriteEntry("AssemblyReference added: " + AssemblyRef.Name);
    }
    
    // Custom event method that occurs when a Web Reference is added.
    private void WebRefEvents_WebRefAdded(WebReference webRef)
    {
        EventLog appLog = new EventLog();
        appLog.Source = "VSWSTest." + webRef.ContainingProject.Name;
        appLog.WriteEntry("WebReference added: " + webRef.Namespace);
    }

    #region Required but unused event handlers

    /// <summary>Implements the OnDisconnection method of the IDTExtensibility2 interface. Receives notification that the Add-in is being unloaded.</summary>
    /// <param term='disconnectMode'>Describes how the Add-in is being unloaded.</param>
    /// <param term='custom'>Array of parameters that are host application specific.</param>
    /// <seealso class='IDTExtensibility2' />
    public void OnDisconnection(ext_DisconnectMode disconnectMode, ref Array custom)
    {
    }

    /// <summary>Implements the OnAddInsUpdate method of the IDTExtensibility2 interface. Receives notification when the collection of Add-ins has changed.</summary>
    /// <param term='custom'>Array of parameters that are host application specific.</param>
    /// <seealso class='IDTExtensibility2' />
    public void OnAddInsUpdate(ref Array custom)
    {
    }

    /// <summary>Implements the OnStartupComplete method of the IDTExtensibility2 interface. Receives notification that the host application has completed loading.</summary>
    /// <param term='custom'>Array of parameters that are host application specific.</param>
    /// <seealso class='IDTExtensibility2' />
    public void OnStartupComplete(ref Array custom)
    {
    }

    /// <summary>Implements the OnBeginShutdown method of the IDTExtensibility2 interface. Receives notification that the host application is being unloaded.</summary>
    /// <param term='custom'>Array of parameters that are host application specific.</param>
    /// <seealso class='IDTExtensibility2' />
    public void OnBeginShutdown(ref Array custom)
    {
    }

    #endregion
}

Siehe auch

Referenz

VsWebSite-Namespace

EnvDTE

WebSiteProperties

Weitere Ressourcen

Referenz zur Automatisierung und Erweiterbarkeit

Verweisen auf Automatisierungsassemblys und das DTE2-Objekt

Visual Studio-Makros

Erstellen von Add-Ins und Assistenten