Онлайн-приложение для развертывания ClickOnce и поместите значок на рабочем столе / в меню «Пуск» - PullRequest
1 голос
/ 09 марта 2012

Я работаю над онлайн-приложением winform, которое развертываю с помощью функции ClickOnce, которое оно загружает через FTP на сервер, а пользователь запускает его через http.

Как вы, возможно, уже знаете, функция «Только онлайн» не размещает значки на рабочем столе, поэтому при каждом запуске пользователь должен запустить файл setup.exe, чтобы сделать это.

У меня вопрос: если я все-таки смогу создать иконку, которая может указывать на файл установки или любой обходной путь, чтобы убедиться, что пользователь получил доступный и простой способ запуска приложения без необходимости искать файл установки каждый раз?

Пользователи могут не очень много знать о компьютерах, поэтому переходить к загруженному файлу каждый раз может быть сложной задачей, и я хочу, чтобы им было легче.

Я знаю, что если я сделаю автономное / онлайн-приложение, оно решит проблему, но мне бы хотелось, чтобы оно было только онлайн.

Есть идеи?

Ответы [ 3 ]

2 голосов
/ 10 марта 2012

Почему вы хотите использовать приложение ClickOnce только для онлайн? Я всегда рекомендую работать в автономном режиме, если только ваше приложение не является идеальным.

Существует очень небольшая разница между онлайн и офлайн. Все одинаковые файлы загружаются в одно и то же место на клиенте. Автономные приложения добавляют запись в «Установка и удаление программ», ярлык меню «Пуск» и необязательный ярлык на рабочем столе (если вы нацелены на .NET 3.5+). Возможность удаления через «Установка и удаление программ» является ключевой. Это облегчает поддержку вашего приложения намного , когда у пользователей возникают проблемы с установкой.

Также вы упоминаете пользователей, каждый раз запускающих setup.exe. Это не нужно. В файле setup.exe будут содержаться загруженные предварительные требования, а затем приложение будет запущено после его завершения. Если пользователь запустил setup.exe один раз, ему нужно всего лишь щелкнуть ссылку на файл приложения. Это определенно ускорит время запуска приложения. Кроме того, во многих случаях пользователь должен иметь права администратора для запуска setup.exe; щелкнуть по .application нет (при условии, что кто-то с правами администратора уже запустил setup.exe).

В заключение, здесь действительно нет ответа :). Но ...

  1. Убедитесь, что ваши рассуждения верны, если вы не используете автономную установку.
  2. После однократного запуска setup.exe, попросите пользователей щелкнуть URL-адрес приложения (или ярлык на рабочем столе, если вы переключаетесь в автономный режим) вместо setup.exe.
1 голос
/ 09 марта 2012

вы можете создать ярлык на рабочем столе вручную при первом запуске приложения и указать его либо на URL вашего приложения, либо на путь к загруженному файлу (я думаю, URL будет безопаснее, если пользователь удалит файл).Код может выглядеть примерно так (нужно настроить свой URL):

void CheckForShortcut()
{
    ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;

    if (ad.IsFirstRun)
    {
        Assembly code = Assembly.GetExecutingAssembly();

        string company = string.Empty;
        string description = string.Empty;

        if (Attribute.IsDefined(code, typeof(AssemblyCompanyAttribute)))
        {
            AssemblyCompanyAttribute ascompany = (AssemblyCompanyAttribute)Attribute.GetCustomAttribute(code,
                typeof(AssemblyCompanyAttribute));
            company = ascompany.Company;
        }

        if (Attribute.IsDefined(code, typeof(AssemblyDescriptionAttribute)))
        {
            AssemblyDescriptionAttribute asdescription = (AssemblyDescriptionAttribute)Attribute.GetCustomAttribute(code,
                typeof(AssemblyDescriptionAttribute));
            description = asdescription.Description;
        }

        if (company != string.Empty && description != string.Empty)
        {
            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);
        }

    }
}

кредитов до http://geekswithblogs.net/murraybgordon/archive/2006/10/04/93203.aspx

0 голосов
/ 13 сентября 2016

Насколько мне известно, не существует надежного способа запуска только онлайн-приложения ClickOnce, чем создание ярлыка для этого setup.exe.

...