Обнаружить установку диска для установки - PullRequest
0 голосов
/ 24 августа 2010

У нас есть требование для установки диска C или D для одной из наших программ.Что мне нужно сделать, это сделать, если установка обнаружит диск D, имеющий определенную структуру папок, например:

D: \ AppData

Если он найдет его, он установит его там.,Если он не найдет его, он установит его здесь:

C: \ AppData

Я использую VS 2008

1 Ответ

0 голосов
/ 24 августа 2010

Нарушение лучших практик установщика Windows заключается в жестком кодировании установщика на любой конкретный диск. Вот почему мы используем такие вещи, как [WindowsVolume] и [ProgramFilesFolder].

Тем не менее, для настраиваемого действия можно условно предоставить переопределение во время установки при условии, что если настраиваемое действие не может найти конкретное переопределение, оно вернется к стандартным рекомендациям.

Forexample

Уважать командную строку по умолчанию в качестве первого приоритета. Попробуй установить D: \ AppData Попробуй установить C: \ AppData Иначе По умолчанию [WindowsVolume] \ AppData (не выполняется пользовательским действием, встроено в таблицу каталогов)

Затем предоставьте диалоговое окно, позволяющее пользователю интерактивно переопределить

Когда я говорю «Попробуйте», я имею в виду написание некоторого кода, чтобы увидеть, существует ли фиксированный диск с этой буквой

Теперь проблема для вас заключается в том, что это звучит так, как будто вы используете проекты развертывания Visual Studio, и, честно говоря, этот инструмент не даст вам необходимой гибкости (без некоторой умной постобработки), чтобы вставить настраиваемое действие так, как вам нужно. вам это нужно. Предполагая, что ваши инструменты будут поддерживать то, что вам нужно, напишите пользовательское действие, которое:

Запланировано до затрат. Инициализация в пользовательском интерфейсе и в последовательности выполнения (для поддержки автоматической установки)

Условие, чтобы оно не запускалось, если свойство уже установлено (для соблюдения командных строк) и если продукт не установлен (вы не можете изменить каталог во время операции восстановления или исправления; она исправлена)

Запланируйте его запуск только один раз (чтобы ЦС не отменял изменения, сделанные в диалоговом окне)

...