Проект установки Visual Studio - используйте значок exe для установленных ярлыков


У меня есть приложение, которое развертывается на клиентских компьютерах с помощью проекта установки Visual Studio 2010. Мое приложение создает ярлык на рабочем столе для главного файла exe.

Если я открою свойства ярлыка и выберу "изменить значок", Я увижу, что значок, используемый для ярлыка, выглядит примерно так:

%SystemRoot%Installer{5B821236-4F7A-4AC9-8BA6-441F456F12F0}_83771230001D45618121E3.exe

Хевер, я хочу, чтобы это было

%Program Files%MyCompanyMyAppMyApp.exe

Или

%Program Files%MyCompanyMyAppMyIcon.ico
Есть ли способ достичь этого?

Я уже использую pice Javascript, который изменяет мою настройку на этапе PostBuild добавить

DISABLEADVTSHORTCUTS =  1

К таблице свойств в файле установки. Возможно, решение аналогично, но я не знаю, что изменить.

2 2

2 ответа:

Реальная проблема, по-видимому, ошибка в проекте установки, создающем только значки низкого качества (48x48 px max), и была подтверждена Microsoft, но не была исправлена до сих пор.

См.http://connect.microsoft.com/VisualStudio/feedback/details/540424/setup-deployment-project-creates-poor-defaulticon-for-file-type

Вы можете исправить это, отредактировав *.msi-файл с Orca:

  1. Посмотрите на таблицу Shortcut, найдите ярлык на рабочем столе, запомните Icon_ значение.

  2. Перейдите к таблице значков, которая содержит записи с именем и столбцом данных. Найдите нужный значок, дважды щелкните запись [Binary Data] и найдите значок с высоким разрешением.

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

Ярлыки, созданные установщиком Windows, автоматически используют ресурс из кэша установщика Windows ("C:\Windows\Installer папка). Это нормальное поведение, и обычно это не проблема. Так что ты можешь просто не обращать на это внимания.

Однако, если вы действительно хотите задать путь к пользовательскому значку, вы можете попробовать использовать пользовательское действие для создания ярлыка вручную.