2013-03-25 3 views
7

Каждый раз, когда я скомпилировал мой установщик, каталог установки по умолчанию - C: \ Program Files \ Company \ Product, и я, похоже, не могу его изменить. Вот что я попал под Setup:Изменение папки установки Inno Setup по умолчанию

[Setup] 
AppName=MyProduct 
AppVerName=MyProduct 
AppPublisher=Company 
DefaultDirName=C:\MyStuff\Company\MyProduct 
DefaultGroupName=Company\MyProduct 
UninstallDisplayIcon={app}\MyProduct.exe 
UninstallDisplayName=MyProduct Uninstall 
PrivilegesRequired=poweruser 
OutputDir=userdocs:Inno Setup Examples Output 
OutputBaseFilename=Setup 
DisableDirPage=false 
DisableProgramGroupPage=true 
VersionInfoCompany=Company Inc 
VersionInfoProductName=MyProduct 
AllowUNCPath=false 

На основании документаций, DefaultDirName должен диктовать папки установки по умолчанию. Но это не так.

В частности, я хочу установить папку установки по умолчанию на машинах x64 в C: \ Program Files, но установщик всегда выбирает Program Files (x86) независимо от того, что я ввел в DefaultDirName.

+0

Для приложения x86 'C: \ Program Files (x86) \' и 'C: \ Program Files \' являются одной и той же папкой. – Deanna

+0

Если у вас есть 64-разрядное приложение, тогда вы должны включить 64-разрядный режим установки, а затем он будет делать то, что вам кажется нужным. Если у вас есть 32-битное приложение, то Inno уже делает правильные вещи, и попытка заставить его установить в 64-битную папку Program Files будет очень плохо. – Miral

ответ

16

Последняя выбранная папка установки имеет приоритет перед директивой DefaultDirName, если для директивы UsePreviousAppDir установлено значение yes, которое по умолчанию. Если вы хотите принудительно выбрать каталог, указанный в параметре DefaultDirName, отключите директиву UsePreviousAppDir.

Если вы хотите сохранить функциональность с последним каталогом и просто преодолеть это для своего тестирования, просто удалите предыдущую установку перед запуском новой встроенной установки.

+0

Сладость. Благодаря! – Mossi

+0

Рад, что я мог бы помочь! – TLama

+3

Обратите внимание, что вы обычно должны ** не ** отключать 'UsePreviousAppDir', так как это нарушает ожидания пользователя. Правильный ответ - удаление во время тестирования. – Miral