.net clickonce smartclient

.net - ¿Puedo crear un icono de escritorio para una aplicación ClickOnce?



smartclient (3)

He leído en algunas de las publicaciones de ClickOnce que ClickOnce no le permite crear un ícono de escritorio para su aplicación. ¿Hay alguna forma de evitar esto?


El icono de escritorio puede ser un acceso directo al archivo .application . Instala esto como una de las primeras cosas que hace tu aplicación.


En Visual Studio 2005, ClickOnce no tiene la capacidad de crear un icono de escritorio, pero ahora está disponible en Visual Studio 2008 SP1. En Visual Studio 2005, puede usar el siguiente código para crear un icono de escritorio para usted cuando se inicia la aplicación.

He usado este código en varios proyectos durante un par de meses sin ningún problema. Debo decir que todas mis aplicaciones se han implementado en una intranet en un entorno controlado. Además, el icono no se elimina cuando la aplicación se desinstala. Este código crea un acceso directo al acceso directo en el menú de inicio que ClickOnce crea.

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); } } } }


Parece que hay una forma de colocar un icono en el escritorio en ClickOnce.

  1. Actualice a Visual Studio 2008 SP 1 y aparecerá un icono en la casilla de verificación del escritorio en la página de opciones de la sección de publicación de la ventana de propiedades del proyecto.
  2. La segunda opción es agregar código a su aplicación que copie el acceso directo al escritorio en la primera ejecución de la aplicación. Consulte la publicación del blog Cómo agregar un acceso directo de escritorio a la aplicación ClickOnce Deployment .