Partilhar 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 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 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, há duas interfaces diferentes implementadas para gravar neles. A IVsPersistSolutionProps interface grava informações de texto no arquivo .sln e a interface grava IVsPersistSolutionOpts 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 lida com isso para o projeto. Portanto, a menos que você queira adicionar conteúdo adicional especificamente ao arquivo de solução, você não precisa registrar seu VSPackage dessa maneira.

Cada persistência de solução de suporte do VSPackage usa três interfaces, a IVsSolutionPersistence interface, que é implementada pelo ambiente e chamada pelo VSPackage, e IVsPersistSolutionProps e IVsPersistSolutionOpts, que são ambas implementadas pelo VSPackage. A IVsPersistSolutionOpts interface só precisa ser implementada se as informações privadas devem ser gravadas pelo VSPackage no 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 carregará o VSPackage correspondente.

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

    • Ao ler um arquivo .sln, o ambiente chama QueryInterface IVsPersistSolutionPropso .

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

    Informações específicas relacionadas ao uso desses arquivos podem ser encontradas no arquivo Solution (.sln) e no arquivo Solution User Options (.suo).

Observação

Se você quiser criar uma nova configuração de solução que consista em configurações de dois projetos e exclua um terceiro da compilação, será necessário usar a interface do usuário ou a automação das Páginas de Propriedades. Não é possível alterar as configurações do gerenciador de compilação de solução e suas propriedades diretamente, mas você pode manipular o gerenciador de compilação de solução 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.