Как открыть другую версию приложения для одного данного расширения файла - PullRequest
1 голос
/ 05 мая 2010

У нас есть файлы данных с расширением ".ppx" для нашего бизнес-приложения здесь. Обычно у пользователей будет установлено несколько версий приложения (рядом), например, версия 1 и версия 2.

Файлы ppx являются файлами xml и содержат версию приложения, из которого они были созданы (v1 или v2). Допустим, у нас есть AFileCreatedWithAppv1.ppx и AFileCreatedWithAppv2.ppx открывается с версией 1 или версией 2 нашего приложения соответственно, когда они оба имеют одинаковое расширение файла?

Это должно быть выполнимо, так как это то, что делает Visual Studio. На самом деле, они даже предоставляют разные значки для одного и того же расширения .sln, чтобы указать, с какой версией Visual Studio он откроется. Я узнал, что Visual Studio использует Selector или Launcher между ними, но опять же, как они меняют значки в Windows?

ура :) 1007 *

Ответы [ 2 ]

3 голосов
/ 05 мая 2010

Visual Studio связывает свои расширения файлов с приложением, которое называется «Выбор версии Visual Studio». Если дважды щелкнуть файл, это приложение открывает файл (например, файл проекта, файл решения) и просматривает в нем информацию о версии, содержащуюся в структуре XML файла. Затем он запускает правильную версию Visual Studio и передает ему имя файла, по которому щелкнули. Я думаю, что значки меняются в зависимости от расширения проводника, которое накладывается на номер версии поверх значка (хотя я не уверен на 100% в этом) - я полагаю, что Office может сделать нечто подобное.

Вы можете отразить это поведение в своем приложении, связав расширение файла ppx с собственным приложением для выбора версии.

Ваше приложение выбора версии должно знать обо всех версиях вашего приложения, установленных на компьютере, чтобы оно могло делегировать ответственность за открытие файла правильной версии.

0 голосов
/ 05 мая 2010

Вам необходимо проверить версию, а затем перейти к остальной части использования. У нас есть продукт, который хранит данные в двоичном сериализованном файле. Заголовок содержит информацию о версии. Продукт распознает версию при десериализации, прежде чем продолжить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...