Запуск при запуске
Обычно вы помещаете ярлык в файл в папке автозагрузки, а не в настоящий файл.Вы делаете это, ссылаясь на встроенное свойство установщика Windows StartupFolder , как показано в образце макета ниже (и как указано Филом).
ВСуществует множество способов запланировать что-то, чтобы начать с Windows. Что это за тип файла и что он делает? Если вам интересно, вы можете увидеть несколько способов запуска чего-либо при входе в систему или при загрузке, запустив AutoRuns (от SysInternals).Существует шокирующий набор возможностей (небольшое отступление).
Очень часто вы можете запускать вещи как службы или запланированные задачи , а не использовать другие функции запуска.Обычно сервисы для функций, которые должны работать непрерывно, и запланированные задачи для вещей, которые должны запускаться время от времени.Я думаю, что большинство людей хотят избежать слишком большого количества вещей, работающих при входе в систему - если они действительно не нужны.Я нахожу папку запуска "неуклюжей", а также склонной к вмешательству пользователя.
Самовосстановление и папка запуска
Эта статья экспертов по обмену описывает случай, когда самовосстановление было инициировано после удаления записи папки автозагрузки (выполните поиск по запросу «автозагрузка», чтобы найти раздел).
Честно говоря, я немного удивлен описанным сценарием.Когда ярлык удален, он не должен легко возвращаться автоматически, так как он обычно не является ключевым путем его хост-компонента.Тем не менее, есть что проверить при тестировании MSI (удалите ярлык, а затем запустите приложение напрямую - если есть ярлык для этого).Если вы видите проблему, пожалуйста, сообщите нам.
Если бы я догадался, что на самом деле произошло, они могли бы установить фактический файл в папку ярлыков и задать его в качестве пути к ключу (как это кажетсяты тоже так пытаешься).Затем они поместили это в ту же иерархию функций, что и рекламируемый ярлык - ту же функцию, или верхнюю функцию приложения, или родительскую функцию - в результате чего самовосстановление всегда будет вызываться при вызове объявленного ярлыка и отсутствующего файла.обнаруживается в папке «Автозагрузка», после чего выполняется самовосстановление.
Отступление : значительное отступление, важно проверить это для настройки!Подобные проблемы действительно обостряют ваших пользователей - их причина, как правило, ускользает от их поддержки.
Образец макета WiX
Вот один пример того, как установитьярлык для папки автозагрузки.Обратите внимание, что папка «Автозагрузка» перенаправляется в зависимости от того, установлена ли установка для каждого пользователя или компьютера, как указано в MSDN: StartupFolder .
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="Startup Shortcut" Manufacturer="Someone" Version="0.0.1"
Language="1033" UpgradeCode="PUT-GUID-HERE">
<Package InstallScope="perMachine" Compressed="yes" />
<Media Id="1" Cabinet="my.cab" EmbedCab="yes" />
<UIRef Id="WixUI_Mondo" /> <!-- Just include a default setup GUI -->
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder" Name="PFiles">
<Directory Id="MyCompany" Name="Company">
<Directory Id="MyAPP" Name="MyApp">
<Component Feature="MyFeature">
<File Source="MyApp.exe" />
<!-- Set Advertise="no" to avoid advertised shortcut -->
<Shortcut Id="MyApp" Directory="StartupFolder" Name="MyApp"
Advertise="yes" />
</Component>
</Directory>
<Directory Id="StartupFolder" />
</Directory>
</Directory>
</Directory>
<Feature Id="MyFeature" Absent="disallow" />
<Property Id="MSIFASTINSTALL" Value="7" /> <!-- Tweak to install faster -->
</Product>
</Wix>