Configuração de projeto para saída
Cada configuração pode oferecer suporte a um conjunto de processos de compilação que produzem itens de saída, como arquivos executáveis ou de recursos. Esses itens de saída são privados para o usuário e podem ser colocados em grupos que vinculam tipos relacionados de saída, como arquivos executáveis (arquivos .exe, .dll, .lib) e arquivos de origem (arquivos .idl, .h).
Os itens de saída podem ser disponibilizados por meio dos IVsOutput2 métodos e enumerados com os IVsEnumOutputs métodos. Quando você deseja agrupar itens de saída, seu projeto também deve implementar a IVsOutputGroup interface.
A construção desenvolvida pela implementação IVsOutputGroup
permite que os projetos agrupem as saídas de acordo com o uso. Por exemplo, uma DLL pode ser agrupada com seu banco de dados de programa (PDB).
Observação
Um arquivo PDB contém informações de depuração e é criado quando a opção 'Gerar informações de depuração' é especificada ao criar o .dll ou .exe. O arquivo .pdb geralmente é gerado somente para configuração de projeto de depuração.
O projeto deve retornar o mesmo número de grupos para cada configuração que ele suporta, mesmo que o número de saídas contidas em um grupo pode variar de configuração para configuração. Por exemplo, a DLL do projeto Matt pode incluir mattd.dll e mattd.pdb na configuração de depuração, mas incluir apenas matt.dll na configuração de varejo.
Os grupos também têm as mesmas informações de identificador, como nome canônico, nome para exibição e informações de grupo, da configuração à configuração dentro de um projeto. Essa consistência permite que a implantação e o empacotamento continuem a operar mesmo se as configurações forem alteradas.
Os grupos também podem ter uma saída de chave que permite que os atalhos de empacotamento apontem para algo significativo. Qualquer grupo pode estar vazio em uma determinada configuração, portanto, nenhuma suposição deve ser feita sobre o tamanho de um grupo. O tamanho (número de saídas) de cada grupo em qualquer configuração pode ser diferente do tamanho de outro grupo na mesma configuração. Ele também pode ser diferente do tamanho do mesmo grupo em outra configuração.
Grupos de saída
O principal uso da IVsProjectCfg interface é fornecer acesso para criar, implantar e depurar objetos de gerenciamento e permitir que os projetos tenham liberdade para agrupar saídas. Para obter mais informações sobre o uso dessa interface, consulte Objeto de configuração do projeto.
No diagrama anterior, o Group Built tem uma saída de chave entre configurações (bD.exe ou b.exe) para que o usuário possa criar um atalho para Built e saber que o atalho funcionará independentemente da configuração implantada. A origem do grupo não tem uma saída de chave, portanto, o usuário não pode criar um atalho para ela. Se o Debug Group Built tiver uma saída de chave, mas o Retail Group Built não, isso seria uma implementação incorreta. Segue-se, então, que se qualquer configuração tiver um grupo que não contém saídas e, como resultado, nenhum arquivo de chave, então outras configurações com esse grupo que contêm saídas não poderão ter arquivos de chave. Os editores do instalador assumem que os nomes canônicos e os nomes de exibição dos grupos, além da existência de um arquivo de chave, não mudam com base nas configurações.
Observe que, se um projeto tiver um IVsOutputGroup
que ele não deseja empacotar ou implantar, é suficiente não colocar essa saída em um grupo. A saída ainda pode ser enumerada normalmente implementando o EnumOutputs método que retorna todas as saídas de uma configuração, independentemente do agrupamento.
Para obter mais informações, consulte a implementação de no exemplo de IVsOutputGroup
projeto personalizado no MPF para projetos.