Partilhar via


Descrição geral de soluções

Uma solução é um agrupamento de um ou mais projetos que trabalham juntos para criar um aplicativo. As informações de projeto e status referentes à solução são armazenadas em dois arquivos de solução diferentes. O arquivo de solução (.sln) é baseado em texto e pode ser colocado sob controle do código-fonte e compartilhado entre os usuários. O arquivo de opção do usuário da solução (.suo) é binário. Como resultado, o arquivo .suo não pode ser colocado sob controle do código-fonte e contém informações específicas do usuário.

Qualquer VSPackage pode gravar em qualquer tipo de arquivo de solução. Devido à natureza dos arquivos, existem duas interfaces diferentes implementadas para gravar neles. A IVsPersistSolutionProps interface grava informações de texto no arquivo .sln e a IVsPersistSolutionOpts interface grava fluxos binários no arquivo .suo.

Observação

Um projeto não precisa escrever explicitamente uma entrada para si mesmo no arquivo de solução; O ambiente lida com isso para o projeto. Portanto, a menos que você queira adicionar conteúdo adicional especificamente para o arquivo de solução, você não precisa registrar seu VSPackage dessa maneira.

Cada VSPackage que suporta a persistência da solução usa três interfaces: a interface IVsSolutionPersistence, que é implementada pelo ambiente e chamada pelo VSPackage, e as interfaces IVsPersistSolutionProps e IVsPersistSolutionOpts, que são ambas implementadas pelo VSPackage. A IVsPersistSolutionOpts interface só precisa ser implementada se informações privadas devem ser gravadas pelo VSPackage para o arquivo .suo.

Quando uma solução é aberta, ocorre o seguinte processo.

  1. O ambiente lê a solução.

  2. Se o ambiente encontrar um CLSID, ele carrega o VSPackage correspondente.

  3. Se um VSPackage é carregado, o ambiente chama QueryInterface para IVsPackage interface para a interface que o VSPackage requer.

    • Ao ler a partir de um arquivo .sln, o ambiente exige QueryInterfaceIVsPersistSolutionProps.

    • Ao ler a partir de um arquivo .suo, o ambiente chama QueryInterface para IVsPersistSolutionOpts.

    Informações específicas relacionadas ao uso desses arquivos podem ser encontradas em Arquivo de Solução (.sln) e Arquivo de Opções do Usuário de Solução (.suo).

Observação

Se quiser criar uma nova configuração de solução que consista em configurações de dois projetos e exclua um terceiro da compilação, precisa usar a interface de utilizador das Páginas de Propriedades ou automatização. Você não pode alterar as configurações do gerenciador de compilação de soluções e suas propriedades diretamente, mas pode manipular o gerenciador de compilação de soluções usando a SolutionBuild classe do DTE no modelo de automação. Para obter mais informações sobre como configurar soluções, consulte Configuração da solução.