Compartilhar via


Como acessar propriedades de pastas para tipos de projetos específicos

Você pode manualmente definir e examinar propriedades da pasta se abrir um projeto no ambiente de desenvolvimento integrado Visual Studio (IDE) clicar com o botão direito em uma pasta em Gerenciador de Soluções. No menu de atalho, clique em Propriedades para exibir a caixa de diálogo Propriedades.

O namespace VSLangProj80 oferece uma maneira de acessar as propriedades da pasta por meio de programação em projetos do Visual C# ou do Visual Basic. Especificamente, FolderProperties2 define um conjunto avançado de propriedades para controlar e acessar informações de pastas. Muitas das propriedades definidas em FolderProperties2 não podem ser acessadas manualmente da janela Propriedades.

Para acessar uma propriedade específica FolderProperties2, você deve passar o nome da propriedade específica como uma cadeia de caracteres a EnvDTE.Property.Properties.Item(object index), conforme mostrado no exemplo de código abaixo.

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

Esse código acessa a propriedade FullPath de uma pasta em um projeto do Visual C# ou do Visual Basic.

Com efeito, as propriedades de configuração definidas em FolderProperties2 são uma lista de referência de propriedades disponíveis de pastas que podem ser acessadas como itens de propriedade de projetos para Visual C# ou Visual Basic.

As etapas abaixo detalham como programaticamente acessar essas propriedades em um suplemento Visual Studio.

Dica

Seu computador pode mostrar diferentes nomes ou localizações para alguns dos elementos de interface do usuário Visual Studio nas instruções a seguir.A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos.Para obter mais informações, consulte Personalizando configurações de desenvolvimento no Visual Studio.

Para acessar propriedades de pastas para um tipo específico de projeto

  1. Crie um projeto de suplemento do Visual Studio usando o Visual C#.

  2. No menu Projeto, clique em Adicionar Referência, clique na guia .NET, selecione VSLangProj, VSLangProj2 e VSLangProj80 e clique em OK.

  3. Adicione as seguintes instruções de uso na parte superior do arquivo Connect.cs.

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

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

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

  6. Compile o suplemento clicando em Compilar Solução no menu Compilação.

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

  8. No menu de Ferramentas , clique Gerenciador de Suplementos, e selecione o suplemento da caixa de diálogo Gerenciador de Suplementos . Clique OK para executar o suplemento.

    As propriedades de pasta para FullPath, FileName e URL são exibidas em caixas de mensagem.

Exemplo

O exemplo a seguir é um suplemento básico do Visual Studio que demonstra como acessar propriedades de uma pasta em um tipo específico de projeto usando a automação do 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

Compilando o código

Para compilar este código, crie um novo projeto do suplemento Visual Studio e substitua o código do método OnConnection com o código no exemplo. Para obter informações sobre como executar um suplemento, consulte Como controlar suplementos usando o Gerenciador de Suplementos.

Consulte também

Outros recursos

Project Properties

Acessando propriedades de projetos, itens de projetos e configuração para tipos de projetos específicos