Freigeben über


Gewusst wie: Bearbeiten der Imports-Eigenschaft von Visual Basic-Projekten

Aktualisiert: November 2007

Die meisten Methoden und Eigenschaften von VSProject2 gelten für Visual C#-, Visual Basic- und Visual J#-Projekte. Weitere Informationen finden Sie unter Gewusst wie: Bearbeiten von Visual Basic- und C#-Projekten mit dem VSProject2-Objekt. Die Imports-Eigenschaft des VSProject2-Objekts ist spezifisch für Visual Basic-Projekte. Sie stellt den Zugriff auf das Imports-Objekt mit Methoden zum Hinzufügen und Auflisten der Imports-Auflistung bereit.

In den nachfolgenden Schritten wird das programmgesteuerte Steuern der Imports-Eigenschaft in einem Visual Basic-Projekt mithilfe eines Visual Studio-Add-Ins erläutert.

Hinweis:

Je nach den aktiven Einstellungen oder der verwendeten Version können sich die angezeigten Dialogfelder und Menübefehle von den in der Hilfe beschriebenen unterscheiden. Bei der Entwicklung dieser Prozeduren war die Option Allgemeine Entwicklungseinstellungen aktiviert. Sie können die Einstellungen ändern, indem Sie im Menü Extras auf Einstellungen importieren und exportieren klicken. Weitere Informationen finden Sie unter Visual Studio-Einstellungen.

So verwenden Sie das VSProject2-Objekt zum Steuern von Visual Basic-Projekten

  1. Erstellen Sie in Visual C# ein Visual Studio-Add-In-Projekt.

  2. Klicken Sie im Menü Projekt auf Verweis hinzufügen, klicken Sie auf die Registerkarte .NET, wählen Sie VSLangProj, VSLangProj2 und VSLangProj80 aus, und klicken Sie dann auf OK.

  3. Erstellen Sie einen Ordner auf dem Computer:

    • <Stammverzeichnis der Installation>\UserFiles\MyProjects\MyTestProject

      In diesem Beispiel entspricht das <Stammverzeichnis der Installation> "C:".

  4. Fügen Sie am Anfang der Datei Connect.cs die folgenden using-Anweisungen ein.

    using VSLangProj;
    using VSLangProj2;
    using VSLangProj80;
    
  5. Fügen Sie der OnConnection-Methode den folgenden Methodenaufruf hinzu.

    public void OnConnection(object application, 
    ext_ConnectMode connectMode, object addInInst, ref Array custom)
    {
        _applicationObject = (DTE2)application;
        _addInInstance = (AddIn)addInInst;
        VBVSProj2Manip(_applicationObject);
    }
    
  6. Fügen Sie die CSVSProj2Manip-Methodendeklaration direkt unter der OnConnection-Methode hinzu.

    public void CSVSProj2Manip(DTE2 dte)
    {
    }
    
  7. Fügen Sie am Anfang der Methode die folgenden Deklarationen hinzu.

    Solution2 soln = (Solution2)_applicationObject.Solution;
    String vbTemplatePath;
    String vbPrjPath;
    Project proj;
    VSProject2 vsproj;
    Imports impCollection;
    
  8. Erstellen Sie mithilfe von AddFromTemplate ein Visual C#-Projekt.

    • Die Syntax zum Abrufen der Vorlagen lautet EnvDTE80.Solution2.GetProjectTemplate("WindowsApplication.zip", "VisualBasic"), wobei der Name "WindowsApplication.zip" aus der Datei WindowsApplication.zip abgerufen wird, die sich im Ordner <Stammverzeichnis der Installation>\Programme\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates\VisualBasic\Windows\1033 befindet. Diese Dateien befinden sich für alle Visual Studio-Projekttypen im Ordner <Stammverzeichnis der Installation>\Programme\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates\Sprache. "VisualBasic" gibt an, dass es sich bei dem Projekt um ein Visual Basic-Projekt handelt.
    // Make sure you create the folders that 
    // make up the file path
    // on your computer. You can replace 
    // this with your own file path.
    vbPrjPath = "C:\\UserFiles\\MyProjects\\MyTestProject";
    // Get the project template path for a C# windows 
    // application.
    vbTemplatePath = soln.GetProjectTemplate("WindowsApplication.zip", "VisualBasic");
            // Create a new Windows application by using the 
    // template obtained above.
    soln.AddFromTemplate(vbTemplatePath, vbPrjPath,
     "Test2VBProj", false);
    
  9. Fügen Sie den folgenden Code hinzu, um die Verwendung von Imports nach dem Abrufen über die Imports-Eigenschaft zu veranschaulichen.

    proj = soln.Projects.Item(1);
    // Get a reference to the VSProject2 object.
    vsproj = (VSProject2)proj.Object;
    // Add a reference to System.Security.dll.
    MessageBox.Show("Adding a reference to System.Security.dll");
    // Remove the <version number> in the following path
    // and replace it with one of the version 
    // number folders that appear 
    // in <installation root>\WINDOWS\Microsoft.NET\Framework
    // folder
    vsproj.References.Add
    ("C:\\WINDOWS\\Microsoft.NET\\Framework\\
    <version number>\\System.Security.dll");
    impCollection = vsproj.Imports;
    MessageBox.Show("The number of imports in this project is: " 
    + impCollection.Count.ToString() + "\n");
    MessageBox.Show
    ("Adding System.Security to the Imports collection.");
    impCollection.Add("System.Security");
    MessageBox.Show("The number of imports in this project is now: " 
    + impCollection.Count.ToString() + "\n");
    String temp = null;
    for (int i = 1; i <= impCollection.Count; i++)
    {
        temp = temp + impCollection.Item(i).ToString() + "\n";
    }
    MessageBox.Show("The Imports in this project are:" + "\n" + temp);
    

    Die VBVSProj2Manip-Methode verwendet das VSProject2-Objekt zum Ausführen der folgenden Aufgaben:

    • Hinzufügen eines Verweises auf die Datei System.Security.dll mithilfe von References.

    • Abrufen eines Handles für Imports mithilfe der Imports-Eigenschaft.

    Die Methoden in Imports werden zum Ausführen der folgenden Aufgaben verwendet:

    • Hinzufügen von System.Security zu der Imports-Auflistung mithilfe von Add.

    • Anzeigen der Anzahl der Elemente in der Imports-Auflistung mithilfe der Count-Eigenschaft.

    • Anzeigen des Namens der Elemente in der Imports-Auflistung mithilfe der Item-Methode.

    Im Beispielabschnitt wird der vollständige Code einschließlich eines try-catch-Blocks für die gesamte Methode aufgelistet.

  10. Um das Add-In zu erstellen, klicken Sie im Menü Erstellen auf Projektmappe erstellen.

  11. Öffnen Sie in der integrierten Entwicklungsumgebung (Integrated Development Environment, IDE) von Visual Studio ein Visual Basic-Projekt.

  12. Klicken Sie im Menü Extras auf Add-In-Manager, und wählen Sie im Dialogfeld Add-In-Manager das Add-In aus. Klicken Sie auf OK, um das Add-In auszuführen.

Beispiel

Das folgende Beispiel stellt ein grundlegendes Add-In in Visual Studio dar und veranschaulicht, wie die Imports-Eigenschaft bei der Visual Studio-Automatisierung verwendet wird.

using System;
using System;
using Extensibility;
using EnvDTE;
using EnvDTE80;
using System.Windows.Forms;
using VSLangProj;
using VSLangProj2;
using VSLangProj80;
public void OnConnection(object application, 
ext_ConnectMode connectMode, object addInInst, ref Array custom)
{
    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;
    VBVSProj2Manip(_applicationObject);
}
public void VBVSProj2Manip(DTE2 dte)
{
    try
    {
        Solution2 soln = (Solution2)_applicationObject.Solution;
        String vbTemplatePath;
        String vbPrjPath;
        Project proj;
        VSProject2 vsproj;
        Imports impCollection;
        // Make sure you create the folders that make up the file path
        // on your computer. You can replace this with 
        // your own file path.
        vbPrjPath = "C:\\UserFiles\\MyProjects\\MyTestProject";
        // Get the project template path for a Visual Basic windows
        // application.
        vbTemplatePath = soln.GetProjectTemplate("WindowsApplication.zip", "VisualBasic");
        // Create a new Windows application by using the 
        // template obtained above.
        soln.AddFromTemplate(vbTemplatePath, vbPrjPath,
 "Test2VBProj", false);
        proj = soln.Projects.Item(1);
        // Cast to the VSProject2 object.
        vsproj = (VSProject2)proj.Object;
        // Add a reference to System.Security.dll.
        MessageBox.Show("Adding a reference to System.Security.dll");
        // Remove the <version number> in the following path
        // and replace it with one of the version 
        // number folders that appear 
        // in <installation root>\WINDOWS\Microsoft.NET\Framework
        // folder
        vsproj.References.Add
("C:\\WINDOWS\\Microsoft.NET\\Framework\\
<version number>\\System.Security.dll");
        vsproj.Refresh();
        impCollection = vsproj.Imports;
        MessageBox.Show("The number of imports in this project is: " 
+ impCollection.Count.ToString() + "\n");
        MessageBox.Show("Adding System.Security to the 
Imports collection.");
        impCollection.Add("System.Security");
        MessageBox.Show("The number of imports in this project is now:
 " + impCollection.Count.ToString() + "\n");
        String temp = null;
        for (int i = 1; i <= impCollection.Count; i++)
        {
            temp = temp + impCollection.Item(i).ToString() + "\n";
        }
        MessageBox.Show("The Imports in this project are:" + "\n" 
+ temp);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}
Imports System
Imports Microsoft.VisualStudio.CommandBars
Imports Extensibility
Imports EnvDTE
Imports EnvDTE80
Imports VSLangProj
Imports VSLangProj2
Imports VSLangProj80
Public Sub OnConnection(ByVal application As Object, _
 ByVal connectMode As ext_ConnectMode, ByVal addInInst As Object, _
 ByRef custom As Array) Implements IDTExtensibility2.OnConnection
    _applicationObject = CType(application, DTE2)
    _addInInstance = CType(addInInst, AddIn)
    VBVSProj2Manip(_applicationObject)
End Sub
Sub VBVSProj2Manip(ByVal dte As DTE2)
    Try
        Dim soln As Solution2 = CType(_applicationObject.Solution, _
        Solution2)
        Dim vbTemplatePath As String
        Dim vbPrjPath As String
        Dim proj As Project
        Dim vsproj As VSProject2
        Dim impCollection As [Imports]
        ' Create this or your own file path on your computer.
        ' The file path needs to exist before you run this add-in.
        vbPrjPath = "C:\UserFiles\MyProjects\MyTestProject"
        ' Get the project template path for a Visual Basic 
        ' Windows application.
        vbTemplatePath = soln.GetProjectTemplate _         ("WindowsApplication.zip", "VisualBasic")
         ' Create a new Windows Application by using the 
        ' template obtained above.
        soln.AddFromTemplate(vbTemplatePath, vbPrjPath, _
        "Test2JSProj", False)
        proj = soln.Projects.Item(1)
        ' Cast the project to a VSProject2.
        vsproj = CType(proj.Object, VSProject2)
        ' Add a reference to System.Security.dll.
        MsgBox("Adding a reference to System.Security.dll")
        ' Remove the <version number> in the following path
        ' and replace it with one of the version 
        ' number folders that appear 
        ' in <installation root>\WINDOWS\Microsoft.NET\Framework
        ' folder
        vsproj.References.Add _
        ("C:\WINDOWS\Microsoft.NET\Framework\ _
        <version number>\System.Security.dll")
        impCollection = vsproj.Imports
        MsgBox("The number of imports in this project is: " & vbCr _
        & impCollection.Count.ToString())
        MsgBox("Adding System.Security to the Imports collection.")
        impCollection.Add("System.Security")
        MsgBox("The number of imports in this project is now: "  _
        & vbCr & impCollection.Count.ToString())
        Dim temp As String = ""
        For i As Integer = 1 To impCollection.Count
            temp = temp & impCollection.Item(i).ToString() & vbCr
        Next i
        MsgBox("The Imports in this project are:" & vbCr & temp)
    Catch ex As System.Exception
        MsgBox(ex.ToString)
    End Try
End Sub

Kompilieren des Codes

Um den Code zu kompilieren, erstellen Sie ein neues Visual Studio-Add-In-Projekt und ersetzen den Code der OnConnection-Methode durch den Code im Beispiel. Informationen zum Ausführen eines Add-Ins finden Sie unter Gewusst wie: Steuern von Add-Ins mit dem Add-In-Manager.

Siehe auch

Konzepte

Einführung in das VSProject2-Objekt

Weitere Ressourcen

Erweitern von Visual Basic- und Visual C#-Projekten