Удаление содержимого изолированного хранилища Silverlight из MSI - PullRequest
1 голос
/ 23 февраля 2011

У меня есть сценарий, в котором MSI необходимо удалить содержимое изолированного каталога хранилища silverlight для определенного приложения silverlight.Поскольку расположение изолированного хранилища для моего приложения отличается от пользователя к пользователю / от компьютера к компьютеру, MSI не может сделать это напрямую и должен вызвать какой-то сценарий / исполняемый файл, чтобы выполнить работу.Итак, мой вопрос состоит из двух частей:

  1. Какой наилучший способ определить расположение изолированного хранилища silverlight для конкретного приложения silverlight?Мое текущее мышление состоит в том, чтобы пройтись по всем папкам под <User>\AppData\LocalLow\Microsoft\Silverlight\is\ и найти файл id.dat, который соответствует моему приложению.

  2. Какие рамки / язык я должен использовать для написания программы (1) выше, а затем удалить содержимое папки?Я хотел бы иметь как можно меньше внешних зависимостей;например, я мог бы легко сделать это с .NET, но тогда мой MSI потребовал бы, чтобы у пользователя был .NET, чтобы просто удалить пару файлов (к сожалению, это неприемлемо).

Для (2) я думаю о прямом приложении win32 или vbscript, но у меня нет опыта работы с win32, и я не уверен в каких-либо препятствиях, которые могут мне понадобитьсяпрыгать, если люди отключили vbscript по соображениям безопасности.

Ответы [ 2 ]

1 голос
/ 25 февраля 2011

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

Чтобы сделать удаление, вы можете просто использовать CScript или VBScript и хост WScript (Google те, и вы увидите множество примеров).

1 голос
/ 25 февраля 2011

Я не уверен, как это сделать с MSI, но как насчет решения проблемы? Вместо использования MSI вы можете создать службу, которую клиент Siverlight проверяет при запуске, и, в зависимости от возвращаемого значения, клиент может очистить свое собственное изолированное хранилище.

Конечно, это предполагает, что вы можете обновить клиент Silverlight; не понятно из твоего вопроса, если сможешь.

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