ソリューション ユーザー オプション (.suo) ファイルには、ユーザーごとのソリューション オプションが含まれています。 このファイルをソース コード管理にチェックインしないでください。
ソリューション ユーザー オプション (.suo) ファイルは、バイナリ形式で格納された構造化ストレージ (複合) ファイルです。 ユーザー情報の保存先はストリームですが、このストリームの名前が、.suo ファイル内の情報を識別するために使用されるキーになります。 ソリューション ユーザー オプション ファイルは、ユーザー設定を格納するために使用され、Visual Studio がソリューションを保存すると自動的に作成されます。
環境で .suo ファイルが開かれると、現在読み込まれているすべての VSPackage が列挙されます。 VSPackage が IVsPersistSolutionOpts インターフェイスを実装する場合、環境は VSPackage に対して LoadUserOptions メソッドを呼び出して、そのデータのすべてを .suo ファイルから読み込むよう求めます。
VSPackage には、.suo ファイルに書き込んだ可能性があるストリームを把握しておく責任があります。 書き込んだストリームごとに、VSPackage は、LoadPackageUserOpts を通じて環境にコールバックして、ストリームの名前であるキーで識別される特定のストリームを読み込みます。 その後、環境は VSPackage にコールバックし、ストリームの名前と、LoadPackageUserOpts メソッドへの IStream
ポインターを渡して、その特定のストリームを読み取ります。
その時点で、LoadUserOptions
がもう一度呼び出されて、読み取る必要がある .suo ファイルの別のセクションがあるかどうかが確認されます。 このプロセスは、.suo ファイル内のすべてのデータ ストリームが環境によって読み取られて処理されるまで続きます。
ソリューションが保存されるか閉じられると、環境により、SaveUserOptions メソッドへのポインターを指定して SavePackageSolutionProps メソッドが呼び出されます。 保存するバイナリ情報を含む IStream
が WriteUserOptions メソッドに渡されます。このメソッドは情報を .suo ファイルに書き込み、もう一度 SaveUserOptions
メソッドを呼び出して、.suo ファイルに書き込む情報の別のストリームがあるかどうかを確認します。
これらの 2 つのメソッド SaveUserOptions
と WriteUserOptions
は、.suo ファイルに保存される情報のストリームごとに、IVsSolutionPersistence
へのポインターを渡して再帰的に呼び出されます。 これらは、.suo ファイルへの複数のストリームの書き込みを可能にするために、再帰的に呼び出されます。 このようにして、ユーザー情報はソリューションに永続化され、次にソリューションを開いたときにそこにあることが保証されます。