How to: Propriedades de acesso de arquivos para tipos específicos de projetos

Você pode definir manualmente e examine as propriedades de arquivo dos arquivos no projeto de Visual Studio o ambiente de desenvolvimento integrado (IDE). Para examinar as propriedades do arquivo, abra um projeto no Visual Studio, o direito de um arquivo de projeto, como filename.cs, na Solution Explorer. No menu de atalho, selecione Propriedades para exibir o Propriedades caixa de diálogo. O Propriedades caixa de diálogo exibe as propriedades de arquivo que você pode definir manualmente para o arquivo escolhido.

O VSLangProj80 namespace oferece uma maneira para programaticamente acessar as propriedades de arquivo em Visual C# ou Visual Basic projetos. Especificamente, FileProperties2 define um rico conjunto de propriedades para controlar e acessar informações do arquivo. Algumas propriedades definidas na FileProperties2 não são válidos para cada tipo de arquivo. Por exemplo, o DateCreated propriedade é definida para os arquivos de código, mas não para outros arquivos de projeto.

Para acessar um determinado FileProperties2 propriedade, você deve passar o nome de propriedade específica no como uma seqüência de caracteres EnvDTE.Property.Properties.Item(object index), conforme mostrado no exemplo de código abaixo.

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");

Este código acessa o FileName propriedade de um arquivo dentro de um Visual C# ou Visual Basic project.

Na verdade, as propriedades são definidas em FileProperties2 são uma lista de referência de propriedades disponíveis de arquivos que podem ser acessados como itens de propriedade do projeto para Visual C# ou Visual Basic projetos.

As etapas a seguir detalham como acessar as propriedades de arquivo programaticamente em um Visual Studio add-in.

ObservaçãoObservação

As caixas de diálogo e comandos de menu demonstradas podem ser diferentes daqueles descritos na Ajuda, dependendo das configurações ativas ou configurações de edição. Esses procedimentos foram desenvolvidos com o General Development Settings ativo. Para alterar as configurações, escolha Import and Export Settings sobre o Ferramentas menu. Para obter mais informações, consulte Trabalhando com configurações.

Para acessar as propriedades de arquivos para um tipo específico de projeto

  1. Criar um Visual Studio projeto usando o Add-in Visual C#.

  2. Sobre o projeto menu, clique em Add Reference, clique o .NET guia, selecione VSLangProj, VSLangProj2, e VSLangProj80e clique em OK.

  3. Adicione as seguintes instruções using ao início do arquivo Connect. cs.

    using VSLangProj;
    using VSLangProj2;
    using VSLangProj80;
    
  4. Adicione a seguinte chamada de método para o método OnConnection.

    public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
    {
        _applicationObject = (DTE2)application;
        _addInInstance = (AddIn)addInInst;
        VSProjectFileProps2(_applicationObject);
    }
    
  5. Adicione o método VSProjectFileProps2 imediatamente abaixo o método 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);
        }
    }
    

    As listas de VSProjectFileProps2 a FileName propriedade para cada arquivo no projeto. O método, em seguida, determina se o arquivo possui uma extensão. cs ou. vb. Em caso afirmativo, o Filesize e DateCreated também os valores de propriedade são exibidos.

    A seção exemplo lista o código completo

  6. Criar o suplemento clicando em Build Solution sobre o Construir menu.

  7. Abrir um Visual C# ou Visual Basic projeto na Visual Studio IDE.

  8. No Ferramentas menu, clique em Gerenciador de suplementose selecione o add-in da Gerenciador de suplementos caixa de diálogo. Clique em OK para executar seu suplemento.

Exemplo

O exemplo a seguir é um basic Visual Studio add-in que demonstra como acessar as propriedades de um arquivo em um tipo específico de projeto usando Visual Studio automação.

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

Compilando o código

Para compilar esse código, crie um novo Visual Studio add-in do projeto e substitua o código do método OnConnection com o código de exemplo. Para obter informações sobre como executar um suplemento, consulte Como: controle de Adicionar-</c0>.

Consulte também

Conceitos

Propriedades do projeto

Outros recursos

Acessando as Propriedadesde configuração de projeto específico do Tipo de projeto e Item de projeto