.NET Installer Project - создание ярлыка постоянно переустанавливается - PullRequest
1 голос
/ 13 января 2010

У меня есть проект .NET (VS2008 .NET 3.5), который создает исполняемый файл. У меня есть проект установщика как часть того же решения, которое создает установщик для этого EXE-файла.

В Файловой системе для установщика я создаю папку для своего приложения в Меню программ пользователя. В этой новой папке я сохраняю .exe и .exe.config. Я также создаю ярлык в той же папке и ярлык на рабочем столе. Ярлык был создан путем щелчка правой кнопкой мыши на «Первичный вывод из приложения (активный)» и выбора «Создать ярлык для первичного вывода из приложения (активный)».

Все устанавливается нормально. Если я нажимаю на .exe, он работает нормально. Когда я нажимаю на любой из ярлыков, появляется маленькое всплывающее окно «Установка» с индикатором выполнения. Я понятия не имею, откуда он или что он делает.

Есть идеи?

Ответы [ 4 ]

5 голосов
/ 16 августа 2011

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

Смотрите мой пост для более подробного обсуждения:
http://ntsblog.homedev.com.au/index.php/2011/08/17/setup-app-config-during-msi-install-msi-re-installing/

1 голос
/ 17 августа 2011

Если вы заглянете в средство просмотра событий Windows (eventvwr.exe) и перейдете в «Журнал приложений», вы увидите событие, относящееся к «Установщику Windows». Это предложит вам то, что вызывает ремонтную деятельность. Он будет идентифицировать компонент по его GUID, поэтому он не покажется полезным сразу.

Откройте программу установки в таком инструменте, как ORCA или InstEd , которые являются редакторами MSI для поиска в таблице компонентов идентификатора GUID, указанного в журнале ошибок.

В этот момент вы хотя бы знаете «что». Я бы сказал, что «почему» будет ответом с множеством переменных, которые трудно определить, не используя этот процесс, чтобы лучше понять проблему, с которой вы имеете дело.

0 голосов
/ 15 января 2010

Я думаю, что я понял это ... и он склоняется ко мне, не понимая, что, черт возьми, я делал. Первоначально я щелкал правой кнопкой мыши на элементе «Первичный вывод из {project} (Active)» и выбрал «Создать ярлык для ...», и это создало бы ярлык, который в свою очередь запустил бы установщик.

На этот раз я сделал другое: щелкнув правой кнопкой мыши на панели файлов в «Меню программ пользователя» и выбрав «Создать ярлык для {проекта}». Во всплывающем окне перейдите вниз к «Меню программ пользователя» и выберите пункт «Первичный вывод из {project} (Active)», и он создаст ярлык, который отлично работает при установке.

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

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

Спасибо всем за ваш вклад!

0 голосов
/ 14 января 2010

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

Я видел, как другие установки развертывания ведут себя странно, когда свойство Start-In неверно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...