Я читал в некоторых сообщениях ClickOnce, что ClickOnce не позволяет создавать значок на рабочем столе для вашего приложения. Есть ли способ обойти это?
Могу ли я создать значок на рабочем столе для приложения ClickOnce?
Ответы (5)
В 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);
}
}
}
}
Похоже, есть способ разместить значок на рабочем столе в ClickOnce.
- При обновлении до Visual Studio 2008 SP 1 на рабочем столе появится значок флажка на странице параметров в разделе публикации окна свойств проекта.
- Второй вариант - добавить в приложение код, который копирует ярлык на рабочий стол при первом запуске приложения. См. Сообщение в блоге Как добавить ярлык на рабочий стол в приложение развертывания ClickOnce < / а>.
В Visual Studio 2017 и 2019 вы можете делать следующее:
Перейдите в Project Properties -> Publish -> Manifests и выберите опцию Создать ярлык на рабочем столе.
Значок на рабочем столе может быть ярлыком для файла .application
. Установите это как одно из первых действий вашего приложения.
Если вы хотите использовать PowerShell, вы можете создать ярлык для файла .bat:
@ECHO OFF
PowerShell -ExecutionPolicy Unrestricted .\script.ps1 >> "%TEMP%\StartupLog.txt" 2>&1
EXIT /B %errorlevel%
который незаметно запускает script.ps1:
$app = "http://your.site/YourApp/YourApp.application";
[Diagnostics.Process]::Start("rundll32.exe", "dfshim.dll,ShOpenVerbApplication " + $app);
которые открывают ваше приложение ClickOnce.