Arquivo de opções do usuário da solução (.suo)

O arquivo de opções do usuário da solução (.suo) contém opções de solução por usuário. Não deve ser feito check-in desse arquivo no controle do código-fonte.

O arquivo de opções do usuário da solução (.suo) é um arquivo de armazenamento estruturado, ou composto, armazenado em um formato binário. Você salva as informações do usuário em fluxos com o nome do fluxo sendo a chave que será usada para identificar as informações no arquivo .suo. O arquivo de opções do usuário da solução é usado para armazenar configurações de preferência do usuário e é criado automaticamente quando o Visual Studio salva uma solução.

Quando o ambiente abre um arquivo .suo, ele enumera todos os VSPackages carregados no momento. Se um VSPackage implementa a IVsPersistSolutionOpts interface, o ambiente chama o LoadUserOptions método no VSPackage solicitando que ele carregue todos os seus dados do arquivo .suo.

É responsabilidade do VSPackage saber quais fluxos ele pode ter gravado no arquivo .suo. Para cada fluxo que ele escreveu, o VSPackage chama de volta ao ambiente para LoadPackageUserOpts carregar um fluxo específico que é identificado pela chave, que é o nome do fluxo. Em seguida, o ambiente chama de volta ao VSPackage para ler esse fluxo específico passando o nome do fluxo e um IStream ponteiro para o LoadPackageUserOpts método.

Nesse ponto, outra chamada é feita para LoadUserOptions ver se há outra seção do arquivo .suo que precisa ser lida. Esse processo continua até que todos os fluxos de dados no arquivo .suo tenham sido lidos e processados pelo ambiente.

Quando a solução é salva ou fechada, o ambiente chama o método com um ponteiro para o SavePackageSolutionPropsSaveUserOptions método. Um IStream contendo as informações binárias a serem salvas é passado para o método, que então grava as informações no arquivo .suo e chama o WriteUserOptionsSaveUserOptions método novamente para ver se há outro fluxo de informações para gravar no arquivo .suo.

Esses dois métodos, e WriteUserOptions, são chamados recursivamente para cada fluxo de informações a ser salvo no arquivo .suo, SaveUserOptions passando o ponteiro para IVsSolutionPersistence. Eles são chamados recursivamente para permitir a gravação de vários fluxos no arquivo .suo. Dessa forma, as informações do usuário são mantidas com a solução e têm a garantia de estar lá na próxima vez que a solução for aberta.

Confira também