Как можно установить файлы через установочный проект в зависимости от ОС? - PullRequest
2 голосов
/ 31 августа 2011

Возможные ОС: Win7 и WinXP, каждая из которых имеет свой собственный путь к каталогу. Win7 устанавливается в C: \ foo, а WinXP устанавливается в D: \ foo. Возможно ли это с помощью Setup Project?

Я сейчас использую VS2005.

Заранее спасибо.

1 Ответ

0 голосов
/ 31 августа 2011

Во-первых, если Windows установлена ​​на C: для Windows 7 и на D: для XP, вы можете просто установить путь к папке приложения по умолчанию:

[WindowsVolume]foo

WindowsVolume свойство автоматически разрешается в раздел Windows.

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

Папка приложения из редактора файловой системы связана со свойством TARGETDIR. Так что если вы действительно хотите динамически изменить его, вы можете установить это свойство. Это можно сделать с помощью пользовательского действия type 51 (свойство установлено с форматированным текстом).

К сожалению, Visual Studio не поддерживает этот тип действий. Таким образом, вы можете либо отредактировать MSI с помощью Orca , чтобы добавить его, либо использовать другой инструмент создания настроек.

Действие типа 51 может установить свойство папки только перед CostInitialize действием. Поскольку вы хотите установить папку установки по умолчанию, ваше действие должно быть запланировано в таблице InstallUISequence . Таким образом, изменения будут видны в вашем интерфейсе установки.

После того, как вы настроили настраиваемое действие, вы можете использовать его для свойства VersionNT . Например, ваш путь установки по умолчанию может быть установлен для Windows 7:

[WindowsVolume]foo

В этом случае ваше пользовательское действие может установить TARGETDIR на путь Windows XP:

D:\foo

и имеют это условие:

VersionNT = "501"
...