Share via


Visão geral das opções de configuração

Projetos no Visual Studio podem oferecer suporte a várias configurações que podem ser criadas, depuradas, executadas e/ou implantadas. Uma configuração é um tipo de compilação descrito com um conjunto nomeado de propriedades, normalmente opções de compilador e locais de arquivo. Por padrão, as novas soluções contêm duas configurações, Debug e Release. Essas configurações podem ser aplicadas usando suas configurações padrão ou modificadas para atender aos requisitos específicos da solução e/ou do projeto. Alguns pacotes podem ser criados de duas maneiras: como um editor ActiveX ou como um componente in-loco. No entanto, os projetos não precisam oferecer suporte a várias configurações. Se houver apenas uma configuração disponível, essa configuração será mapeada em todas as configurações da solução.

As configurações geralmente consistem em duas partes: o nome da configuração (como Debug ou Release) e as configurações da plataforma. O nome da plataforma de uma configuração identifica o ambiente que a configuração destina, como um conjunto de APIs ou uma plataforma de sistema operacional. Os usuários do Visual Studio não podem criar uma plataforma; eles devem escolher entre as seleções que um projeto VSPackage permite. Quando um usuário instala um VSPackage, a plataforma de entrega criada durante o desenvolvimento do pacote pode exibir qualquer nome de plataforma desejado com base em qualquer critério definido pelo criador do pacote. O usuário pode então selecionar na lista de plataformas disponibilizadas por meio do VSPackage quando as páginas de propriedades são instanciadas.

Os nomes de plataformas são opcionais, uma vez que nem todos os projetos suportam o conceito de plataformas. Quando uma configuração não tem um nome de plataforma, a cadeia de caracteres N/D é exibida na interface do usuário.

Cada solução tem seu próprio conjunto de configurações, das quais apenas uma pode estar ativa por vez. Uma configuração de solução é um conjunto de no máximo uma configuração de cada projeto. A estipulação "não mais que" é devido à opção de excluir um projeto de uma configuração de solução. Os usuários podem criar suas próprias configurações de solução personalizadas.

A tabela a seguir ilustra as configurações típicas de um projeto. As linhas são rotuladas com nomes de configuração e as colunas com nomes de plataforma.

Nome da configuração Plataforma: Win32 Plataforma: Win64
Depurar <Depurar configurações do Win32> <Depurar configurações do Win64>
Versão <Liberar configurações do Win32> <Liberar configurações do Win64>
MyConfig N/D <Configurações do MyConfig Win64>

Observação

Você não pode criar uma configuração de solução MyConfig que exclui uma plataforma Win32, a menos que o projeto que você está direcionando não oferece suporte a Win32.

A alteração da configuração ativa de uma solução seleciona o conjunto de configurações de projeto que é criado, executado, depurado ou implantado nessa solução. Por exemplo, se você alterar a configuração da solução ativa de Release para Debug, todos os projetos dentro dessa solução serão criados automaticamente com a configuração dos projetos indicada na configuração de depuração da solução. As configurações dos projetos também são chamadas de Depuração , a menos que o usuário tenha feito alterações manuais no Configuration Manager do ambiente.

As propriedades de configuração da solução armazenadas para cada projeto incluem o nome do projeto, o nome da configuração do projeto, os sinalizadores para indicar se deve ou não compilar ou implantar e o nome da plataforma. Para obter mais informações, consulte Configuração da solução.

O usuário pode exibir e definir parâmetros de configuração da solução selecionando a solução na hierarquia (Gerenciador de Soluções) e abrindo as páginas de propriedades. Da mesma forma, você pode exibir e definir parâmetros de configuração do projeto selecionando um projeto no Gerenciador de Soluções e abrindo as páginas de propriedades desse projeto.

O usuário também pode criar um projeto usando definições de configuração de versão e todo o resto com definições de configuração de depuração, se necessário. Para obter mais informações, consulte Configuração do projeto para compilação.

O diagrama a seguir mostra como as interfaces que oferecem suporte a configurações de solução e projeto são implementadas:

Configuration interfaces graphic Interfaces de configuração

Algumas notas relativas ao diagrama anterior:

  • IDispatch é marcado como opcional no objeto de configuração. Especificamente, é opcional ter as interfaces de configuração no objeto de navegação.

  • IVsDebuggableProjectCfg é marcado como opcional no objeto de configuração, mas é necessário para o suporte à depuração.

  • IVsProjectCfg2 é marcado como opcional no objeto de configuração, mas é necessário para suporte ao agrupamento de saída.

  • O objeto Config Provider é marcado como um objeto opcional, mas a opção é onde implementá-lo. Você pode implementar o objeto no objeto de projeto ou em um objeto separado.

  • IVsCfgProvider2 é necessário para suporte de plataforma e edição de configuração. IVsCfgProvider é suficiente se você não implementar essa funcionalidade.

  • Alguns desses objetos mostrados no diagrama como objetos separados podem ser combinados na mesma classe quando práticos com base em seus requisitos de design específicos. Em outros tópicos desta seção, no entanto, os objetos e interfaces associados a esses objetos serão discutidos de acordo com o cenário apresentado no diagrama.

  • Determinados objetos são implementados separadamente. Por exemplo, a criação de projeto e solução ocorre em threads separados e o objeto para gerenciar a compilação vive separadamente do objeto que descreve a configuração para a compilação.

    Para obter mais informações sobre as interfaces de objeto de configuração e as interfaces de objeto do provedor de configuração no diagrama anterior, consulte Objeto de configuração do projeto. Além disso, a configuração do Project para criação fornece mais informações sobre o Construtor de configuração e as interfaces de objeto de dependência de compilação, e a Configuração do projeto para gerenciar a implantação descreve melhor as interfaces anexadas ao implementador de configuração e aos objetos de dependência de implantação. Finalmente, a configuração do Project para saída descreve as interfaces do grupo de saída e do objeto de saída e o uso de páginas de propriedades para exibir e definir propriedades dependentes da configuração.