Файл параметров пользователя решения (SUO-файл)
Файл параметров пользователя решения (SUO) содержит параметры решения для каждого пользователя. Этот файл не должен быть проверка в систему управления исходным кодом.
Файл параметров пользователя решения (SUO) — это структурированное хранилище или составное файл, хранящийся в двоичном формате. Данные пользователя сохраняются в потоках с именем потока, который будет использоваться для идентификации сведений в suo-файле. Файл параметров пользователя решения используется для хранения параметров предпочтения пользователя и создается автоматически при сохранении решения Visual Studio.
Когда среда открывает suo-файл, он перечисляет все загруженные в данный момент VSPackages. Если VSPackage реализует IVsPersistSolutionOpts интерфейс, среда вызывает LoadUserOptions метод в VSPackage с просьбой загрузить все данные из suo-файла.
Ответственность VSPackage заключается в том, чтобы узнать, какие потоки он мог бы записать в suo-файл. Для каждого записанного потока VSPackage возвращается в среду LoadPackageUserOpts , чтобы загрузить определенный поток, который определяется ключом, который является именем потока. Затем среда возвращается в VSPackage, чтобы прочитать этот конкретный поток, передав имя потока и IStream
указатель на LoadPackageUserOpts метод.
На этом этапе выполняется еще один вызов, чтобы узнать LoadUserOptions
, есть ли другой раздел suo-файла, который должен быть прочитан. Этот процесс продолжается до тех пор, пока все потоки данных в suo-файле не будут прочитаны и обработаны средой.
При сохранении или закрытии решения среда вызывает SavePackageSolutionProps метод с указателем на SaveUserOptions метод. Хранимая IStream
двоичная информация передается WriteUserOptions методу, который затем записывает сведения в suo-файл и вызывает SaveUserOptions
метод еще раз, чтобы узнать, есть ли другой поток информации для записи в suo-файл.
Эти два метода SaveUserOptions
и WriteUserOptions
вызываются рекурсивно для каждого потока информации, который будет сохранен в suo-файле, передав указатель IVsSolutionPersistence
на . Они вызываются рекурсивно, чтобы разрешить запись нескольких потоков в suo-файл. Таким образом, сведения о пользователе сохраняются вместе с решением и гарантированно будут там при следующем открытии решения.