Como criar itens de projetos programaticamente
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.
Para criar itens de projeto de modo programático, chame GetProjectItemTemplate e passe os caminhos do modelo retornado a AddFromTemplate. Para obter mais informações, consulte Visual Studio Templates.
O método GetProjectItemTemplate retorna o modelo do arquivo .zip apropriado para uso com o método AddFromTemplate. Os modelos de item do projeto para todos os idiomas podem ser encontrados em Arquivos de Programas\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\Language\.
Também é possível criar seus próprios modelos personalizados de item de projeto. Para especificar o diretório no qual você armazenará os modelos, clique em Opções no menu Ferramentas. No painel esquerdo da caixa de diálogo Opções, clique em Projetos e Soluções. Digite o caminho dos modelos na caixa Local dos modelos de item de usuário do Visual Studio.
Os modelos personalizados requerem nomes de arquivo únicos que não entrem em conflito com os nomes de arquivo que estão definidos em: Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\Language\.
Verifique se você está usando nomes de arquivo longos (em vez de 8dot3). Para obter mais informações, consulte Creating Project and Item Templates.
Para remover projetos da solução, use Remove.
O exemplo a seguir aborda o método genérico para criar itens de projeto. Os tópicos listados na seção Consulte também aborda como usar os modelos específicos de linguagem.
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.
Adicionando itens aos projetos
Para adicionar itens a um projeto de modo programático
Inicie o Visual Studio e crie um projeto de suplemento do Visual Studio.
Adicione o código mostrado posteriormente neste tópico à classe de Connect do suplemento.
Execute o projeto do suplemento e ative-o em Gerenciador de Suplementos clicando em Gerenciador de Suplementos no menu Ferramentas e selecionando a caixa ao lado do suplemento.
Exemplo
O exemplo a seguir demonstra como adicionar itens programaticamente a um projeto existente do Visual Basic.
' Before running the following code, be sure that a Visual Basic
' project is open in Visual Studio.
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)
createProjectItem(_applicationObject)
End Sub
Sub createProjectItem(ByVal dte As DTE2)
' Adds a new Class to an existing Visual Basic project.
Dim soln As Solution2
Dim prj As Project
soln = CType(_applicationObject.Solution, Solution2)
Dim prjItem As ProjectItem
Dim itemPath As String
' Point to the first project (the Visual Basic project).
prj = soln.Projects.Item(1)
' Retrieve the path to the Class template.
itemPath = soln.GetProjectItemTemplate("Class.zip", "vbproj")
' Create a new project item based on the template, in this case,
' a Class.
prjItem = prj.ProjectItems.AddFromTemplate(itemPath, "MyNewClass")
End Sub
// Before running the following code, be sure that a Visual Basic
// project is open in Visual Studio.
public void OnConnection(object application,
Extensibility.ext_ConnectMode connectMode, object addInInst, ref
System.Array custom)
{
_applicationObject = (DTE2)application;
_addInInstance = (AddIn)addInInst;
// Pass the applicationObject member variable to the code example.
createProjectItem(_applicationObject);
}
public void createProjectItem(DTE2 dte)
{
//Adds a new Class to an existing Visual Basic project.
Solution2 soln;
Project prj;
soln = (Solution2)_applicationObject.Solution;
ProjectItem prjItem;
String itemPath;
// Point to the first project (the Visual Basic project).
prj = soln.Projects.Item(1);
// Retrieve the path to the class template.
itemPath = soln.GetProjectItemTemplate("Class.zip", "vbproj");
//Create a new project item based on the template, in this
// case, a Class.
prjItem = prj.ProjectItems.AddFromTemplate(itemPath, "MyNewClass");
}
Compilando o código
Para compilar este código, crie um novo projeto de suplemento do Visual Studio e substitua o código da classe Connect.cs ou Connect.vb usando o código no exemplo. Antes de executar o suplemento, abra um projeto Visual Basic em Visual Studio. Para obter informações sobre como executar um suplemento, consulte Como controlar suplementos usando o Gerenciador de Suplementos.
Programação robusta
Quando você usa nomes de itens de projeto como o parâmetro de Solution.Projects.Item, deve usar o nome exclusivo do projeto. O nome exclusivo é um caminho relativo do diretório que contém o arquivo de solução (.sln) ao arquivo de projeto.
Por exemplo, considere a estrutura de projeto/solução a seguir:
SomeSolution.sln
WinApp1
WinApp1.VBProj
O nome exclusivo para o projeto seria "WinApp1/WinApp1.VBProj" e a chamada ao método Item seria Solution.Projects.Item("WinApp1/WinApp1.VBProj").
Consulte também
Tarefas
Como compilar e executar os exemplos de código do modelo de objeto Automation
Como criar projetos programaticamente
Conceitos
Manipulando projetos do Visual Basic e do Visual C#
Manipulando projetos do Visual C++
Introdução aos modelos de Visual Studio