2013-03-25 1 views
5

На рабочем столе с тем же именем есть ярлык, но он был установлен установкой setupfactory (я хочу заменить его inno). теперь, когда я устанавливаю установку, созданную innosetup, она создает новый значок, а не заменяет текущий. Я добавил раздел [installDelete], но не работает. Я просто проверил свойства ярлыка. найденный мной diff - один ярлык имеет владельца в качестве группы администраторов, а другой - мой пользователь. но оба они были установлены одним и тем же пользователем. это будет причина? есть ли обходной путь для этого? или я могу проверить, существует ли ярлык с тем же именем? Спасибозаменить тот же ярлык с рабочего стола innosetup

Оба указывают на один и тот же путь на том же пути. I m установка в окнах 7

+1

Больше, чем собственность, будет тем, что отличается. Проверьте пути этих ярлыков и включите их в свой вопрос, пожалуйста. – TLama

+0

спасибо .. я отредактировал вопрос – sjd

+0

Возможно, у вас есть один ярлык в 'Users \ YOUR_PROFILE \ Desktop', который будет' {userdesktop} 'и второй в' Users \ Public \ Desktop', который будет '{commondesktop}' – RobeN

ответ

5

В этом случае вы должны проверить расположение обоих ярлыков.

Возможно, один из них создан в папке «Общественный рабочий стол» (для всех пользователей) - {commondesktop}, а второй предназначен для папки «Текущий пользовательский рабочий стол» - {userdesktop}.

А.

[Icons] 
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; 
WorkingDir: "{app}"; Tasks: desktopicon 

B.

[Icons] 
Name: "{userdesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; 
WorkingDir: "{app}"; Tasks: desktopicon 
+0

да, это была проблема. теперь я заставил его использовать userdesktop для обоих. еще раз спасибо. – sjd

+0

@ user1616785, вы также можете ['upvote the answer'] (http://meta.stackexchange.com/a/173400/179541), так же, как я сделал несколько минут до этого сообщения ;-) – TLama

+0

@ user1616785 Обратите внимание, что установленный '{userdesktop}', который вы устанавливаете, может не совпадать с рабочим столом пользователя, который запускает настройку. Если ему нужно было поднять до администратора из LUA, тогда пользователь будет другим. – Deanna

0

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

Если вы этого не сделаете, вполне вероятно, что пользователь закончит работу с файлами деинсталлятора на своем диске и более чем одной записью «Установка и удаление программ»; оба они уродливые.

(Это одноразовая вещь. - нет необходимости удалять старую версию при переходе от одного Inno или версии приложения к другому, только при переходе от неживого Inno к Inno или наоборот)

+0

Да, мы это делаем. но мы также используем установку обновления, где деинсталлятор не включен. поэтому первый деинсталлятор будет работать нормально, поскольку установка обновления установила те же файлы только с последними версиями. спасибо за подсказку – sjd

+0

До какой-то более поздней версии, где вы добавили дополнительный файл.(Обычно, когда вы устанавливаете обновление с помощью Inno, вы * делаете * хотите, чтобы он создавал записи для удаления именно по этой причине - Inno достаточно умен, чтобы добавить к существующему журналу деинсталляции и записи по умолчанию, но, конечно, это работает только правильно, если первоначальная установка была выполнена с помощью Inno.) Лично я по-прежнему рекомендую обнаружить этот случай и попросить пользователя использовать полный установщик. Я не уверен в SetupFactory, но я знаю, что установщики на базе MSI становятся сварливыми, если какой-либо другой установщик заменяет свои файлы. – Miral

Смежные вопросы