Я прочитал в некоторых сообщениях ClickOnce, что ClickOnce не позволяет создавать значок рабочего стола для вашего приложения. Есть ли способ обойти это?
Можно ли создать значок рабочего стола для приложения ClickOnce?
Ответ 1
В Visual Studio 2005, ClickOnce не имеет возможности создавать значок рабочего стола, но теперь он доступен в Visual Studio 2008 SP1. В Visual Studio 2005 вы можете использовать следующий код для создания значка рабочего стола для вас, когда приложение запускается.
Я использовал этот код для нескольких проектов уже пару месяцев без каких-либо проблем. Должен сказать, что все мои приложения были развернуты по интрасети в контролируемой среде. Кроме того, значок не удаляется при удалении приложения. Этот код создает ярлык для ярлыка в меню запуска, которое создает ClickOnce.
private void CreateDesktopIcon()
{
ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;
if (ad.IsFirstRun)
{
Assembly assembly = Assembly.GetEntryAssembly();
string company = string.Empty;
string description = string.Empty;
if (Attribute.IsDefined(assembly, typeof(AssemblyCompanyAttribute)))
{
AssemblyCompanyAttribute ascompany =
(AssemblyCompanyAttribute)Attribute.GetCustomAttribute(
assembly, typeof(AssemblyCompanyAttribute));
company = ascompany.Company;
}
if (Attribute.IsDefined(assembly, typeof(AssemblyDescriptionAttribute)))
{
AssemblyDescriptionAttribute asdescription =
(AssemblyDescriptionAttribute)Attribute.GetCustomAttribute(
assembly, typeof(AssemblyDescriptionAttribute));
description = asdescription.Description;
}
if (!string.IsNullOrEmpty(company))
{
string desktopPath = string.Empty;
desktopPath = string.Concat(
Environment.GetFolderPath(Environment.SpecialFolder.Desktop),
"\\",
description,
".appref-ms");
string shortcutName = string.Empty;
shortcutName = string.Concat(
Environment.GetFolderPath(Environment.SpecialFolder.Programs),
"\\",
company,
"\\",
description,
".appref-ms");
System.IO.File.Copy(shortcutName, desktopPath, true);
}
}
}
}
Ответ 2
Кажется, есть способ разместить значок на рабочем столе в ClickOnce.
- Вернитесь к Visual Studio 2008 SP 1, и на странице параметров в разделе публикации окна свойств проекта будет установлен значок на рабочем столе.
- Второй вариант - добавить код в приложение, который копирует ярлык на рабочий стол при первом запуске приложения. См. Сообщение в блоге Как добавить ярлык рабочего стола в приложение для развертывания ClickOnce.
Ответ 3
Значок рабочего стола может быть ярлыком для файла .application
. Установите это как одну из первых вещей, которые делает ваше приложение.