Condividi tramite


Procedura: accesso alle proprietà delle cartelle per tipi di progetto specifici

È possibile impostare ed esaminare manualmente le proprietà delle cartelle se si apre un progetto nell'ambiente di sviluppo integrato (IDE, Integrated Development Environment) di Visual Studio e facendo clic con il pulsante destro del mouse su una cartella in Esplora soluzioni. Scegliere Proprietà dal menu di scelta rapida per visualizzare la finestra di dialogo Proprietà.

Lo spazio dei nomi VSLangProj80 offre un modo per accedere a livello di codice alle proprietà delle cartelle nei progetti di Visual C# o Visual Basic. In particolare, FolderProperties2 definisce un insieme di proprietà per il controllo e l'accesso di informazioni sulle cartelle. Molte delle proprietà definite in FolderProperties2 non sono accessibili manualmente dalla finestra Proprietà.

Per accedere a una proprietà FolderProperties2 specifica, è necessario passarne il nome come stringa a EnvDTE.Property.Properties.Item(object index), come illustrato nell'esempio di codice riportato di seguito.

Project project;
ProjectItem folder;
Properties folderProps;
Property prop;
project = _applicationObject.Solution.Projects.Item(1);
folder = project.ProjectItems.AddFolder("MyFolder"
,Constants.vsProjectItemKindPhysicalFolder);
folderProps = folder.Properties;
prop = folderProps.Item("FullPath");

Il codice consente di accedere alla proprietà FullPath di una cartella in un progetto di Visual C# o Visual Basic.

Di fatto, le proprietà definite in FolderProperties2 rappresentano un elenco di riferimento delle proprietà disponibili per cartelle cui è possibile accedere come elementi delle proprietà di progetto per progetti di Visual C# o di Visual Basic.

Di seguito viene illustrato come accedere a queste proprietà a livello di codice in un componente aggiuntivo di Visual Studio.

Nota

È possibile che le finestre di dialogo e i comandi di menu visualizzati siano diversi da quelli descritti nella Guida a seconda delle impostazioni attive o dell'edizione del programma. Queste procedure sono state sviluppate con le Impostazioni generali per lo sviluppo attive. Per modificare le impostazioni, scegliere Importa/Esporta impostazioni dal menu Strumenti. Per ulteriori informazioni, vedere Gestione delle impostazioni.

Per accedere alle proprietà delle cartelle per un tipo di progetto specifico

  1. Creare un progetto di componente aggiuntivo Visual Studio utilizzando Visual C#.

  2. Scegliere Aggiungi riferimento dal menu Progetto, selezionare la scheda .NET, quindi VSLangProj, VSLangProj2 e VSLangProj80 e infine scegliere OK.

  3. Aggiungere le istruzioni using riportate di seguito all'inizio del file Connect.cs.

    using VSLangProj;
    using VSLangProj2;
    using VSLangProj80;
    
  4. Aggiungere la chiamata al metodo OnConnection riportata di seguito.

    public void OnConnection(object application, 
    ext_ConnectMode connectMode, object addInInst, ref Array custom)
    {
        _applicationObject = (DTE2)application;
        _addInInstance = (AddIn)addInInst;
        VSProjectFolderProps2(_applicationObject);
    }
    
  5. Aggiungere il metodo VSProjectFolderProps2 immediatamente sotto il metodo OnConnection.

    public void VSProjectFolderProps2(DTE2 dte)
    {
        try
        {
            // Open a Visual C# or Visual Basic project
            // before running this add-in.
            Project project;
            ProjectItem folder;
            Properties folderProps;
            Property prop;
            project = _applicationObject.Solution.Projects.Item(1);
            // Add a new folder to the project.
            MessageBox.Show("Adding a new folder to the project.");
            folder =
     project.ProjectItems.AddFolder("MyFolder",
    Constants.vsProjectItemKindPhysicalFolder);
            folderProps = folder.Properties;
            prop = folderProps.Item("FullPath");
            MessageBox.Show("The full path of the new folder is:" 
    + "\n" + prop.Value.ToString());
            prop = folderProps.Item("FileName");
            MessageBox.Show("The file name of the new folder is:" 
    + "\n" + prop.Value.ToString());
            prop = folderProps.Item("URL");
            MessageBox.Show("The new folder has the following URL:" 
    + "\n" + prop.Value.ToString());
        }
        catch(Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
    

    Nella sezione relativa agli esempi è elencato il codice completo.

  6. Compilare il componente aggiuntivo scegliendo Compila soluzione dal menu Compila.

  7. Aprire un progetto di Visual C# o Visual Basic nell'IDE di Visual Studio.

  8. Scegliere Gestione componenti aggiuntivi dal menu Strumenti, quindi selezionare il componente aggiuntivo nella finestra di dialogo Gestione componenti aggiuntivi. Scegliere OK per eseguire il componente aggiuntivo.

    Le proprietà delle cartelle per FullPath, FileName e URL vengono visualizzate in finestre di messaggio.

Esempio

Nell'esempio seguente viene illustrato un componente aggiuntivo di Visual Studio di base per l'accesso a proprietà di una cartella in un tipo specifico di progetto utilizzando l'automazione di Visual Studio.

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;
    VSProjectFolderProps2(_applicationObject);
}
public void VSProjectFolderProps2(DTE2 dte)
{
    try
    {
        // Open a Visual C# or Visual Basic project
        // before running this add-in.
        Project project;
        ProjectItem folder;
        Properties folderProps;
        Property prop;
        project = _applicationObject.Solution.Projects.Item(1);
        // Add a new folder to the project.
        MessageBox.Show("Adding a new folder to the project.");
        folder =
 project.ProjectItems.AddFolder("MyFolder"
,Constants.vsProjectItemKindPhysicalFolder);
        folderProps = folder.Properties;
        prop = folderProps.Item("FullPath");
        MessageBox.Show("The full path of the new folder is:" + "\n" 
+ prop.Value.ToString());
        prop = folderProps.Item("FileName");
        MessageBox.Show("The file name of the new folder is:" + "\n" 
+ prop.Value.ToString());
        prop = folderProps.Item("URL");
        MessageBox.Show("The new folder has the following URL:" 
+ "\n" + prop.Value.ToString());
    }
    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)
    VSProjectConfigProperties(_applicationObject)
End Sub
Sub VSProjectConfigProperties(ByVal dte As DTE2)
    ' Open a Visual C# or Visual Basic project
    ' before running this add-in.
    Try
        Dim project As Project
        Dim folder As ProjectItem
        Dim folderProps As Properties
        Dim prop As [Property]
        project = _applicationObject.Solution.Projects.Item(1)
        ' Add a new folder to the project.
        MsgBox("Adding a new folder to the project...")
        folder = project.ProjectItems.AddFolder("MyFolder" _
        , Constants.vsProjectItemKindPhysicalFolder)
        folderProps = folder.Properties
        prop = folderProps.Item("FullPath")
        MsgBox("The full path of the new folder is:" & vbCr _
        & prop.Value.ToString())
        prop = folderProps.Item("FileName")
        MsgBox("The file name of the new folder is:" & vbCr _
        & prop.Value.ToString())
        prop = folderProps.Item("URL")
        MsgBox("The new folder has the following URL:" & vbCr  _
        & prop.Value.ToString())
    Catch ex As System.Exception
        MsgBox(ex.ToString)
    End Try
End Sub

Compilazione del codice

Per compilare il codice, creare un nuovo progetto di componente aggiuntivo Visual Studio e sostituire il codice del metodo OnConnection con il codice dell'esempio. Per informazioni su come eseguire un componente aggiuntivo, vedere Procedura: controllare i componenti aggiuntivi tramite Gestione componenti aggiuntivi.

Vedere anche

Concetti

Proprietà del progetto

Altre risorse

Accesso a un tipo di progetto specifico, a un elemento di progetto e alle proprietà di configurazione di un progetto