Compartilhar via


Visão geral das 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 relativas à 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 de usuário da solução (.suo) é binário. Como resultado, o arquivo .suo não pode ser colocado no 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, há 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 gravar explicitamente uma entrada para si mesmo no arquivo de solução; o ambiente manipula isso para o projeto. Portanto, a menos que você queira adicionar conteúdo adicional especificamente ao arquivo de solução, não será necessário registrar seu VSPackage dessa maneira.

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

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

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

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

  3. Se um VSPackage for carregado, o ambiente chamará QueryInterface para a interface IVsPackage que o VSPackage requer.

    • Ao ler de um arquivo .sln, o ambiente chama QueryInterface para IVsPersistSolutionProps.

    • Ao ler 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 de Usuário da Solução (.suo).

Observação

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