ソリューション ユーザー オプション (.suo) ファイル
ソリューション ユーザー オプション (.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 ファイルへの複数のストリームの書き込みを可能にするために、再帰的に呼び出されます。 このようにして、ユーザー情報はソリューションに永続化され、次にソリューションを開いたときにそこにあることが保証されます。