Когда приложение, развернутое ClickOnce AutoUpdate, автоматически обновляется в Windows 7, приложение становится unpinnned от панели задач. Существует ли способ мешать ему стать неприкрепленным?
Я вообще не вижу этой проблемы. Я предполагаю, что вы вручную закрепили приложение на панели задач при первом запуске.
Вы ориентируетесь на .NET 3.5 (SP-1)? У вас есть ClickOnce для создания ярлыка на рабочем столе или вы делаете это программно? Ярлык на рабочем столе пропадает?
Он исчезает с панели задач каждый раз при выпуске обновления или просто время от времени?
RobinDotNet
Когда приложение ClickOnce не установлено, это, скорее всего, невозможно. Когда оно установлено; я не уверен.
Приложение ClickOnce загружается во временный каталог пользователей. Когда приложение загружает последнюю версию, эта версия сохраняется в новом подкаталоге и не перезаписывается, как в случае «обычных» обновлений приложения.
Не знаю, как насчет того, чтобы он не был прикреплен, но есть способ с помощью vbs-скрипта прикрепить exe, который не должен быть доступен с помощью кода:
Call AddToTaskbar("C:\temp\", "MyExe.exe")
Function AddToTaskbar (Path, File)
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(Path)
Set objFolderItem = objFolder.ParseName(File)
Set colVerbs = objFolderItem.Verbs
For Each objVerb in colVerbs
If Replace(objVerb.name, "&", "") = "Pin to Taskbar" Then
'WScript.Echo objVerb
objVerb.DoIt
End If
Next
End Function
Это основано на том, что в меню правой кнопки мыши exe есть пункт "Pin to Taskbar". Это, к сожалению, делает его специфичным для английского языка, если только у кого-то нет списка всех переводов.
Я не уверен, как Windows 7 справляется с этим, но я использую код, похожий на this , чтобы скопировать appref-ms в папка автозагрузки в меню «Пуск». Я думаю, что в моем коде (на моей рабочей машине, и я ухожу на выходные) также есть проверка, является ли это новой установкой, поэтому он не меняет ярлык, если это обновление.