У меня есть приложение C # WinForms, которое инициализируется на панели задач при запуске с помощью ярлыка в папке запуска пользователя:
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
string startupFolder = Environment.GetFolderPath(Environment.SpecialFolder.Startup);
string shortcutAddress = startupFolder + @"\NotifyNinja.lnk";
if (checkBox1.Checked)
{
if (!io.File.Exists(shortcutAddress))
{
WshShell shell = new WshShell();
IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(shortcutAddress);
shortcut.Description = "A startup shortcut. If you delete this shortcut from your computer, Notify.exe will not launch on Windows Startup"; // set the description of the shortcut
shortcut.WorkingDirectory = Application.StartupPath; /* working directory */
shortcut.TargetPath = Application.ExecutablePath; /* path of the executable */
shortcut.Save(); // save the shortcut
}
else
{
io.File.Delete(shortcutAddress);
WshShell shell = new WshShell();
IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(shortcutAddress);
shortcut.Description = "A startup shortcut. If you delete this shortcut from your computer, Notify.exe will not launch on Windows Startup"; // set the description of the shortcut
shortcut.WorkingDirectory = Application.StartupPath; /* working directory */
shortcut.TargetPath = Application.ExecutablePath; /* path of the executable */
shortcut.Save(); // save the shortcut
}
}
else
{
if (io.File.Exists(shortcutAddress))
{
io.File.Delete(shortcutAddress);
}
}
}
Это прекрасно работает, но я сделал несколько обновлений для своего приложения с момента его первой публикации, и мои пользователи, похоже, их не получают. Мои обновления установлены на:
- Проверка после начала применения
- Каждые 7 дней
- Не требуется минимальная версия
После дальнейшего тестирования кажется, что если я уберу ярлык запуска, закрою программу и снова открою ее, обновления вступят в силу.
Есть мысли о том, как я могу вызвать обновления для этой автозапускающейся программы?