Pregunta

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

¿Fue útil?

Solución

En Visual & nbsp; Studio & nbsp; 2005, ClickOnce no tiene la capacidad de crear un icono de escritorio , pero ahora está disponible en Visual & nbsp; Studio & nbsp; 2008 SP1. En Visual & nbsp; Studio & nbsp; 2005, puedes usar el siguiente código para crear un ícono de escritorio cuando inicies 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 se desinstala la aplicación. Este código crea un acceso directo al acceso directo en el menú de inicio que crea 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);
            }
        }
    }
}

Otros consejos

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

  1. Actualice a Visual & nbsp; Studio & nbsp; 2008 SP 1, y se colocará un ícono 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 copia el acceso directo al escritorio en la primera ejecución de la aplicación. Vea la publicación del blog Cómo agregar un acceso directo de escritorio a la aplicación de implementación de ClickOnce .

El icono del 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 2017 y 2019 puedes hacer lo siguiente:

Ir a Propiedades del proyecto - > Publicar - > Manifiesta y selecciona la opción Crear acceso directo de escritorio

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top