Я хочу установить некоторые файлы в папку, расположенную по адресу «C:\Users\Public\MyApp
». Есть ли заданная переменная в WiX, которая разрешает «C: \ Users \ Public» в Windows 7 и эквивалентное местоположение в других версиях Windows?Есть ли предварительно установленная переменная WiX для папки «C: Users Public»?
ответ
Эта задача решается, как показано ниже:
<Directory Id="UserPublicMyAppFolder" Name="MineSched">
</Directory>
<SetDirectory Id="UserPublicMyAppFolder" Value="C:\Users\Public\MyApp" />
Зачем вам жесткий код C: \ Users \ Public? Что произойдет, если пользовательский язык Windows не является английским? –
Хорошая точка. Это не мое решение. Я пытался убедить П.А., что [CommonAppDataFolder] - лучший выбор, но решение принимается высшим руководством. Я подниму озабоченность. Благодарю. – sean717
No. WiX определяет только эти переменные в проектах по настройке:
sys.CURRENTDIR
sys.SOURCEFILEPATH
sys.SOURCEFILEDIR
sys.PLATFORM
И переменные WiX используются только тогда, когда пакет установки построен.
Вероятно, вы имеете в виду свойства Windows Installer. Они зависят от версии установщика Windows, перечислены here. Примечание: при чтении требуемой версии установщика Windows в документах вам грозит листинг минимальной версии, которая действительно может быть установлена на конкретную версию операционной системы. Минимальная версия для поддержки свойства будет самой низкой из них.
Ответ по-прежнему «нет». Фактически, для поиска этой папки нет даже API CSIDL. С Windows Vista существует API FOLDERID, хотя установщик Windows не использует его.
Дело в том, что не там, где установлены файлы! Обратите внимание на [CommonAppDataFolder].
Спасибо, Том, я сам это понял. И я согласен с вами в том, что «C: \ Users \ Public \ MyApp» не там, где должны быть установлены файлы. Но я не тот, кто принимает решение в организации. – sean717
-1 не использовать общие данные приложения. –