Compartilhar via


Modelos de projetos genéricos versus específicos à linguagem

Os suplementos do Visual Studio foram substituídos no Visual Studio 2013. Você deve atualizar seus suplementos para as extensões VSPackage. Para obter mais informações sobre atualização, consulte Perguntas frequentes: convertendo suplementos em extensões VSPackage.

Visual Studio fornece dois tipos de modelos de projeto: genérico e programações específicas de idiomas.

Genérica modelo de projeto

O modelo de projeto genérico é representado pelos seguintes tipos:

Nome do objeto

Descrição

Coleção Projects

Representa todos os projetos na solução.

Objeto Project

Representa um projeto na solução.

Coleção ProjectItems

Representa todos os itens em um projeto especificado.

Objeto ProjectItem

Representa um item em um projeto especificado.

Esses objetos permitem que você manipule projetos de qualquer tipo de linguagem no Visual Studio. Usando-os, você pode:

  • Salve ou exclua um projeto.

  • Crie um novo item de projeto para um projeto, com base nos modelos do Visual Studio.

  • Adicione itens de projeto a um projeto de arquivos existentes.

  • Remova itens do projeto a partir de um projeto.

  • Abra, salve e exclua itens de projeto de um projeto.

Modelo de projeto específico da linguagem

Além dos objetos genéricos relacionados ao projeto, um conjunto de namespaces representa as propriedades do item de projeto e do projeto específicas da linguagem de programação. Esses namespaces são:

Os principais objetos que representam projetos de idioma são VSProject e VSProject2. VSProject2 deriva de VSProject, que, por sua vez, deriva de Project. Os itens do projeto são representados por objetos VSProjectItem.

Linguagem de programação

Namespaces

Visual C#

VSLangProj, VSLangProj2 e VSLangProj80.

Visual Basic

VSLangProj, VSLangProj2 e VSLangProj80.

Visual C++

Microsoft.VisualStudio.VCProject e Microsoft.VisualStudio.VCProjectEngine.

Todas as linguagens de programação

EnvDTE e EnvDTE80.

Como os objetos específicos da linguagem derivam dos genéricos, eles funcionam essencialmente da mesma maneira, exceto pelo fato de que oferecem acesso a todas as propriedades, métodos e eventos adicionais que não podem ser acessados com os objetos genéricos Project e ProjectItem .

Para obter mais informações sobre como usar o modelo de projeto específico de linguagem, consulte Introdução à extensibilidade de projetos.

Alterar para projetos Visual Studio .NET Visual C++

No Visual Studio .NET e além, o tratamento especial para a coleção de ProjectItems do Visual C++ não é mais necessário. Isto é, embora a coleção do Visual C++ Projects tenha armazenado todos os arquivos de projeto do Visual C++ anteriormente em uma lista simples, agora os arquivos serão armazenados de maneira hierárquica como nas outras linguagens de programação.

Uma vez que essa alteração pode afetar o código existente, há uma maneira de emular o comportamento antigo no novo modelo de objeto específico do projeto ao tentar indexar a coleção ProjectItems para determinar se um arquivo está no projeto. A principal diferença é que agora você pode retornar ao modelo de objeto DTE chamando .Object em um objeto do Visual C++.

[Visual Basic]

Dim proj as VCProject = DTE.ActiveSolutionProjects(1).Object
Dim fileColl as IVCCollection = proj.Files
Dim file as VCFile = fileColl.Item("MyFile.cpp")
Dim projItem as ProjectItem = file.Object

Consulte também

Tarefas

Como criar projetos programaticamente

Como criar itens de projetos programaticamente

Outros recursos

Controlando a solução e os respectivos projetos