Objeto de configuração de projeto
O objeto de configuração do projeto gerencia a exibição de informações de configuração para a interface do usuário.
Páginas de propriedades de configuração do projeto
O Provedor de Configuração do Projeto gerencia as configurações do projeto. O ambiente e outros pacotes, para obter acesso e recuperar informações sobre as configurações de um projeto, chame as interfaces anexadas ao objeto Provedor de Configuração do Projeto.
Observação
Não é possível criar ou editar arquivos de configuração de solução programaticamente. Você deve usar DTE.SolutionBuilder
o . Consulte Configuração da Solução para obter mais informações.
Para publicar um nome de exibição a ser usado na interface do usuário de configuração, seu projeto deve implementar get_DisplayNameo . O ambiente chama GetCfgs, que retorna uma lista de ponteiros que você pode usar para obter os nomes de exibição das informações de IVsCfg
Configuração e Plataforma a serem listadas na interface do usuário do ambiente. A configuração ativa e a plataforma são determinadas pela configuração do projeto armazenada na configuração da solução ativa. O FindActiveProjectCfg método pode ser usado para recuperar a configuração ativa do projeto.
O IVsProjectCfgProvider objeto pode opcionalmente ser implementado no IVsCfgProvider2 objeto com o IVsCfgProviderEventsHelper objeto para permitir que você recupere um IVsProjectCfg2
objeto com base no nome de configuração canônico do projeto.
Outra maneira de fornecer o ambiente e outros projetos com acesso a configurações de projeto é que os projetos forneçam uma implementação do método para retornar um ou mais objetos de IVsCfgProvider2::GetCfgs
configuração. Os projetos também podem implementar IVsProjectCfg2o , que herda de IVsProjectCfg
e, portanto, do , para fornecer informações específicas de IVsCfg
configuração. IVsCfgProvider2 oferece suporte a plataformas e funcionalidade para adicionar, excluir e renomear configurações de projeto.
Observação
Como o Visual Studio não está mais limitado a dois tipos de configuração, o código que processa configurações não deve ser escrito com suposições sobre o número de configurações, nem deve ser escrito com a suposição de que um projeto que tem apenas uma configuração é necessariamente Depurar ou Varejo. Isso torna o uso de get_IsReleaseOnly e get_IsDebugOnly obsoleto.
Chamando QueryInterface
o objeto retornado deIVsGetCfgProvider::GetCfgProvider
recuperações IVsCfgProvider2
. Se IVsGetCfgProvider
não for encontrado chamando QueryInterface
o IVsProject3
objeto de projeto, você poderá acessar o objeto do provedor de configuração chamando QueryInterface
o objeto do navegador raiz da hierarquia para o objeto retornado para IVsHierarchy::GetProperty(VSITEM_ROOT, VSHPROPID_BrowseObject)
, ou por meio de um ponteiro para o provedor de configuração retornado para IVsHierarchy::GetProperty(VSITEM_ROOT, VSHPROPID_ConfigurationProvider)
.
IVsProjectCfg2
fornece principalmente acesso a objetos de gerenciamento de compilação, depuração e implantação e permite aos projetos a liberdade de agrupar saídas. Os métodos de e IVsProjectCfg2
podem ser usados para implementar IVsBuildableProjectCfg para gerenciar o processo de IVsProjectCfg
compilação e IVsOutputGroup ponteiros para os grupos de saída de uma configuraçã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. Os grupos também devem ter as mesmas informações de identificador (nome canônico, nome para exibição e informações do grupo) da configuração para a configuração em um projeto. Para obter mais informações, consulte Configuração do projeto para saída.
Para habilitar a depuração, suas configurações devem implementar IVsDebuggableProjectCfgo . IVsDebuggableProjectCfg
é uma interface opcional implementada por projetos para permitir que o depurador inicie uma configuração e é implementada no objeto de configuração com IVsCfg
e IVsProjectCfg
. O ambiente o chama quando o usuário opta por iniciar o depurador pressionando F5.
ISpecifyPropertyPages
e IDispatch
são usados em conjunto com páginas de propriedades para recuperar e exibir informações dependentes da configuração para o usuário. Para obter mais informações, consulte Páginas de propriedades.