Condividi tramite


Procedura: accedere alle proprietà dei file per tipi di progetto specifici

È possibile impostare ed esaminare manualmente le proprietà dei file del progetto nell'ambiente di sviluppo integrato (IDE, Integrated Development Environment) di Visual Studio. Per esaminare le proprietà dei file, aprire un progetto in Visual Studio e da Esplora soluzioni fare clic con il pulsante destro del mouse su un file di progetto, ad esempio filename.cs. Dal menu di scelta rapida selezionare Proprietà per visualizzare la finestra di dialogo Proprietà. Nella finestra di dialogo Proprietà vengono visualizzate le proprietà dei file che è possibile impostare manualmente per il file scelto.

Lo spazio dei nomi VSLangProj80 offre un modo per accedere a livello di codice alle proprietà dei file nei progetti di Visual C# o di Visual Basic. In particolare, FileProperties2 definisce un insieme di proprietà per il controllo e l'accesso di informazioni sui file. Alcune proprietà definite in FileProperties2 non sono valide per ogni tipo di file. La proprietà DateCreated, ad esempio, viene definita per i file di codice, ma non per altri file di progetto.

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

Project project;
ProjectItems projItems;
ProjectItem projItem;
Property prop;
project = _applicationObject.Solution.Projects.Item(1);
projItems = project.ProjectItems;
projItem = projItems.Item(1);
prop = projItem.Properties.Item("FileName");

Il codice consente di accedere alla proprietà FileName di un file in un progetto di Visual C# o di Visual Basic.

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

Di seguito viene illustrato come accedere alle proprietà dei file 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à dei file per un tipo specifico di progetto

  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;
        VSProjectFileProps2(_applicationObject);
    }
    
  5. Aggiungere il metodo VSProjectFileProps2 immediatamente sotto il metodo OnConnection.

    public void VSProjectFileProps2(DTE2 dte)
    {
        try
        {
            // Open a Visual C# or Visual Basic project
            // before running this add-in.
            Project project;
            ProjectItems projItems;
            ProjectItem projItem;
            Property prop;
            project = _applicationObject.Solution.Projects.Item(1);
            projItems = project.ProjectItems;
            for(int i = 1 ; i <= projItems.Count; i++ )
            {
                projItem = projItems.Item(i);
                prop = projItem.Properties.Item("FileName");
                MessageBox.Show("The file name of item " + i + " is: " 
    + prop.Value.ToString());
                if (prop.Value.ToString().Contains(".cs") 
    || prop.Value.ToString().Contains(".vb"))
                {
                    prop = projItem.Properties.Item("FileSize");
                    MessageBox.Show("The file size of item " + i + " 
    is: " + prop.Value.ToString());
                    prop = projItem.Properties.Item("DateCreated");
                    MessageBox.Show("The creation date of item " + i 
    + " is: " + prop.Value.ToString());
                }
            }
        }
        catch(Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
    

    In VSProjectFileProps2 la proprietà FileName è elencata per ogni file del progetto. Il metodo determina quindi se il file presenta un'estensione cs o vb. In caso affermativo, vengono anche visualizzati i valori delle proprietà Filesize e DateCreated.

    Nella sezione relativa all'esempio è 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.

Esempio

Nell'esempio riportato di seguito viene illustrato un componente aggiuntivo di Visual Studio di base per l'accesso alle proprietà di un file di 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;
    VSProjectFileProps2(_applicationObject);
}
public void VSProjectFileProps2(DTE2 dte)
{
    try
    {
        // Open a Visual C# or Visual Basic project
        // before running this add-in.
        Project project;
        ProjectItems projItems;
        ProjectItem projItem;
        Property prop;
        project = _applicationObject.Solution.Projects.Item(1);
        projItems = project.ProjectItems;
        for(int i = 1 ; i <= projItems.Count; i++ )
        {
            projItem = projItems.Item(i);
            prop = projItem.Properties.Item("FileName");
            MessageBox.Show("The file name of item " + i + " is: " 
+ prop.Value.ToString());
            if (prop.Value.ToString().Contains(".cs") 
|| prop.Value.ToString().Contains(".vb"))
            {
                prop = projItem.Properties.Item("FileSize");
                MessageBox.Show("The file size of item " + i + " is: "
 + prop.Value.ToString());
                prop = projItem.Properties.Item("DateCreated");
                MessageBox.Show("The creation date of item " + i 
+ " is: " + 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)
    VSProjectFileProperties2(_applicationObject)
End Sub
Sub VSProjectFileProperties2(ByVal dte As DTE2)
    ' Open a Visual C# or Visual Basic project
    ' before running this add-in.
    Try
        Dim project As Project
        Dim projItems As ProjectItems
        Dim projItem As ProjectItem
        Dim prop As [Property]
        project = _applicationObject.Solution.Projects.Item(1)
        projItems = project.ProjectItems
        For i As Integer = 1 To projItems.Count
            projItem = projItems.Item(i)
            prop = projItem.Properties.Item("FileName")
            MsgBox("The file name of item " & i & " is: "  _
            & prop.Value.ToString())
            If (prop.Value.ToString().Contains(".cs")  _
            Or prop.Value.ToString().Contains(".vb")) Then
                prop = projItem.Properties.Item("FileSize")
                MsgBox("The file size of item " & i & " is: "  _
                & prop.Value.ToString())
                prop = projItem.Properties.Item("DateCreated")
                MsgBox("The creation date of item " & i & " is: "  _
                & prop.Value.ToString())
            End If
        Next i
        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