Como: 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 a Visual Studio o ambiente de desenvolvimento integrado (IDE).Para examinar as propriedades do arquivo, abra um projeto no Visual Studio, com um arquivo de projeto, como, por exemplo, filename.cs, o botão direito em 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 espaço para nome oferece uma maneira para programaticamente acessar as propriedades de arquivo em Visual C# ou Visual Basic projetos.Especificamente, FileProperties2 define um conjunto avançado de propriedades para controlar e acessar informações de arquivo.Algumas propriedades definidas na FileProperties2 não são válidos para cada tipo de arquivo.Por exemplo, o DateCreated propriedade é definida para 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 para 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 definidas em FileProperties2 são uma lista de referência de propriedades disponíveis de arquivos que podem ser acessados como itens de propriedade para de projeto Visual C# ou Visual Basic projetos.
As etapas a seguir detalham como acessar as propriedades de arquivo por meio de programação em um Visual Studio suplemento.
Observaçã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 Configurações de Visual Studio. |
Para acessar as propriedades de arquivos para um tipo específico de projeto
Criar um Visual Studio projeto de suplemento usando Visual C#.
Sobre o projeto menu, clique em Add Reference, clique no .NET guia, selecione VSLangProj, VSLangProj2, e VSLangProj80e clique em OK.
Adicione o seguinte usando as instruções para a parte superior do arquivo Connect. cs.
using VSLangProj; using VSLangProj2; using VSLangProj80;
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); }
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
Construir o add-in, clicando em Build Solution sobre o Build menu.
Open a Visual C# or Visual Basic project in the Visual Studio IDE.
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 suplemento que demonstra como acessar as propriedades de um arquivo em um tipo específico de projeto por meio de 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 o projeto de suplemento e substituir o código do método OnConnection com o código do exemplo.Para obter informações sobre como executar um suplemento, consulte Como: Add-Ins de controle, usando o Gerenciador de suplemento.
Consulte também
Outros recursos
Acessando as propriedades de configuração de projeto específico do tipo de projeto e Item de projeto