Partilhar via


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

Projetos no Visual Studio podem dar 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 arquivos. 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 no próprio local. No entanto, os projetos não precisam suportar 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 alvo para o qual a configuração se destina, como um conjunto de APIs ou uma plataforma do sistema operativo. 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 a partir da lista de plataformas disponibilizadas através do VSPackage quando as páginas de propriedades são instanciadas.

Os nomes das 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/A é exibida na interface do usuário.

Cada solução tem seu próprio conjunto de configurações, apenas uma das quais pode estar ativa de cada 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" deve-se à 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 a configuração de configurações típicas para 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
Debug <Depurar configurações do Win32> <Depurar configurações do Win64>
Lançamento <Configurações do Release Win32> <Configurações do Release Win64>
MyConfig N/A <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á visando não suporte Win32.

Alterar a 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 Debug, a menos que o utilizador tenha feito alterações manuais no Gestor de Configurações 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, sinalizadores para indicar se deve ou não ser criado ou implantado e o nome da plataforma. Para obter mais informações, consulte Configuração da solução.

O usuário pode visualizar 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 utilizador também pode criar um projeto usando definições de configuração de release e os demais com definições de configuração de depuração, se necessário. Para obter mais informações, consulte Configuração do projeto para construção.

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

Gráfico de interfaces de configuração

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 está marcado como opcional no objeto de configuração, mas é necessário para suporte à depuração.

  • IVsProjectCfg2 é marcado como opcional no objeto de configuração, mas é necessário para o 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 do projeto ou em um objeto separado.

  • IVsCfgProvider2 é necessário para suporte à plataforma e edição de configuração. IVsCfgProvider é suficiente se não implementares 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.

  • Certos 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 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 construção fornece mais informações sobre o Configuration builder e as interfaces de objeto de dependência de compilação, e a configuração do Project para gerenciar a implantação descreve mais detalhadamente as interfaces anexadas ao implantador de configuração e aos objetos de dependência de implantação. Finalmente, a configuração do projeto para saída descreve o grupo de saída e as interfaces de objeto de saída, e o uso de páginas de propriedades para exibir e definir propriedades dependentes da configuração.