Pergunta

Eu li em alguns dos lugares ClickOnce que ClickOnce não permite que você para criar um ícone no desktop para sua aplicação. Existe alguma maneira de contornar isso?

Foi útil?

Solução

No Visual Studio 2005, ClickOnce não tem a capacidade de criar um ícone no desktop, mas está agora disponível no Visual Studio 2008 SP1. Em Visual Studio 2005, você pode usar o seguinte código para criar um ícone no desktop para você quando o aplicativo for iniciado.

Eu tenho usado este código ao longo de vários projectos para um par de meses agora sem qualquer problema. Devo dizer que todos os meus aplicativos foram implantados através de uma intranet em um ambiente controlado. Além disso, o ícone não é removido quando o aplicativo é desinstalado. Esse código cria um atalho para o atalho no menu Iniciar que ClickOnce cria.

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

Outras dicas

Parece que há uma maneira de colocar um ícone na área de trabalho em ClickOnce.

  1. Atualização para Visual Studio 2008 SP 1, e haverá um colocado um ícone na área de trabalho caixa de seleção na página de opções da seção publicar da janela de propriedades do projeto.
  2. A segunda opção é adicionar o código ao seu aplicativo que copia o atalho para o ambiente de trabalho na primeira execução do aplicativo. Veja o post Como adicionar área de trabalho atalho para Implementação do Aplicativo ClickOnce .

O ícone no desktop pode ser um atalho para o arquivo .application. Instale esta como uma das primeiras coisas que a sua aplicação não.

No Visual Studio 2017 e 2019 você pode fazer o seguinte:

Go to Project Properties -> Publicar -> Manifestos e selecione a opção Criar área de trabalho atalho

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top