Visão geral das soluções

Uma solução é um grupo 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 o 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 o 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 interface grava informações de texto no arquivo .sln e a interface grava IVsPersistSolutionProps 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, não será necessário registrar o VSPackage dessa maneira.

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

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

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

    • Ao ler de um arquivo .suo, o ambiente chama QueryInterface por IVsPersistSolutionOpts .

    Informações específicas relacionadas ao uso desses arquivos podem ser encontradas na Solução (. Sln) Opções de usuário de arquivo e solução (. Suo) Arquivo.

Observação

Se você quiser criar uma nova configuração de solução que consiste em configurações de dois projetos e excluindo um terceiro do build, você precisará usar a interface do usuário ou automação de Páginas de Propriedades. 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 da solução usando a classe de DTE no modelo SolutionBuild de automação. Para obter mais informações sobre como configurar soluções, consulte Configuração da solução.

Confira também