Пошаговое руководство. Развертывание приложения ClickOnce вручную

Если вы не можете использовать Visual Studio для развертывания приложения ClickOnce или необходимо использовать расширенные функции развертывания, такие как развертывание доверенных приложений, используйте Mage.exe средство командной строки для создания манифестов ClickOnce. В этом пошаговом руководстве описывается создание развертывания ClickOnce с помощью версии командной строки (Mage.exe) или графической версии (MageUI.exe) Инструмент создания и изменения манифестов.

Примечание.

В ClickOnce для .NET Core 3.1 и .NET 5 или более поздней версии используйте dotnet-mage.exe вместо Mage.exe. Дополнительные сведения см. в разделе ClickOnce для .NET.

Необходимые компоненты

В этом пошаговом руководстве есть некоторые предварительные требования и параметры, которые необходимо выбрать перед созданием развертывания.

  • Установка Mage.exe и MageUI.exe.

    Mage.exe и MageUI.exe являются частью пакета средств разработки программного обеспечения Windows (SDK). Необходимо установить пакет SDK для Windows или версию пакета SDK для Windows, включенную в Visual Studio. Дополнительные сведения см. в пакете SDK для Windows в MSDN.

  • Укажите приложение для развертывания.

    В этом пошаговом руководстве предполагается, что у вас есть приложение Windows, готовое к развертыванию. Это приложение будет называться AppToDeploy.

  • Определите, как будет распределено развертывание.

    Варианты распространения включают в себя: веб-файловый ресурс или cd. Для получения дополнительной информации см. ClickOnce Security and Deployment.

  • Определите, требуется ли приложению повышенный уровень доверия.

    Если приложению требуется полное доверие ( например, полный доступ к системе пользователя) можно использовать -TrustLevel для Mage.exe установки этого параметра. Если вы хотите определить настраиваемый набор разрешений для приложения, можно скопировать раздел разрешений Интернета или интрасети из другого манифеста, изменить его в соответствии с вашими потребностями и добавить его в манифест приложения с помощью текстового редактора или MageUI.exe. Для получения дополнительной информации см. раздел Общие сведения о развертывании доверенных приложений.

  • Получите сертификат Authenticode.

    Необходимо подписать развертывание с помощью сертификата Authenticode. Вы можете создать тестовый сертификат с помощью Visual Studio, MageUI.exeили средств или Pvk2Pfx.exeMakeCert.exe получить сертификат из центра сертификации (ЦС). Если вы решили использовать развертывание доверенных приложений, необходимо также выполнить однократную установку сертификата на всех клиентских компьютерах. Для получения дополнительной информации см. Trusted Application Deployment Overview.

    Примечание.

    Вы также можете подписать развертывание с помощью сертификата CNG, который можно получить из центра сертификации.

  • Убедитесь, что у приложения нет манифеста с сведениями об UAC.

    Необходимо определить, содержит ли приложение манифест с информацией об управлении учетными записями пользователей (UAC), например <dependentAssembly> элементом. Для изучения манифеста приложения можно использовать служебную программу Windows Sysinternals Sig проверка.

    Если приложение содержит манифест с подробными сведениями об UAC, необходимо повторно создать его без сведений об UAC. Для проекта C# в Visual Studio откройте свойства проекта и перейдите на вкладку "Приложение". В раскрывающемся списке манифеста выберите "Создать приложение без манифеста". Для проекта Visual Basic в Visual Studio откройте свойства проекта, перейдите на вкладку "Приложение" и щелкните "Просмотреть UAC" Параметры. В открывшемся файле манифеста удалите все элементы в одном <asmv1:assembly> элементе.

  • Определите, требуется ли приложению необходимые условия на клиентском компьютере.

    Приложения ClickOnce, развернутые из Visual Studio, могут включать загрузчик установки необходимых компонентов (setup.exe) в развертывание. В этом пошаговом руководстве создаются два манифеста, необходимые для развертывания ClickOnce. С помощью задачи GenerateBootstrapper можно создать предварительный загрузчик.

Развертывание приложения с помощью средства командной строки Mage.exe

  1. Создайте каталог, в котором будут храниться файлы развертывания ClickOnce.

  2. В только что созданном каталоге развертывания создайте подкаталог версии. Если это первый раз, когда вы развертываете приложение, назовите подкаталог версии 1.0.0.0.0.

    Примечание.

    Версия развертывания может отличаться от версии приложения.

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

  4. Откройте командную строку пакета SDK для Windows или Visual Studio и перейдите к подкаталогу версии.

  5. Создайте манифест приложения с вызовом Mage.exe. Следующая инструкция создает манифест приложения для кода, скомпилированного для выполнения на процессоре Intel x86.

    mage -New Application -Processor x86 -ToFile AppToDeploy.exe.manifest -name "My App" -Version 1.0.0.0 -FromDirectory .
    

    Примечание.

    Не забудьте включить точку (.) после -FromDirectory параметра, указывающего текущий каталог. Если точка не включена, необходимо указать путь к файлам приложения.

  6. Подписыв манифест приложения с помощью сертификата Authenticode. Замените mycert.pfx путь к файлу сертификата. Замените passwd паролем для файла сертификата.

    mage -Sign AppToDeploy.exe.manifest -CertFile mycert.pfx -Password passwd
    

    Начиная с пакета SDK платформа .NET Framework 4.6.2, который распространяется с помощью Visual Studio и с помощью пакета SDK для Windows, mage.exe подписывает манифесты с помощью CNG, а также с помощью сертификатов Authenticode. Используйте те же параметры командной строки, что и сертификаты Authenticode.

  7. Перейдите в корневой каталог развертывания.

  8. Создайте манифест развертывания с вызовом Mage.exe. По умолчанию Mage.exe помечает развертывание ClickOnce как установленное приложение, чтобы его можно было запускать как в сети, так и в автономном режиме. Чтобы сделать приложение доступным только в том случае, если пользователь находится в сети, используйте -Install параметр со значением false. Если вы используете значение по умолчанию, и пользователи установят приложение из веб-сайта или общей папки, убедитесь, что значение -ProviderUrl параметра указывает на расположение манифеста приложения на веб-сервере или общем ресурсе.

    mage -New Deployment -Processor x86 -Install true -Publisher "My Co." -ProviderUrl "\\myServer\myShare\AppToDeploy.application" -AppManifest 1.0.0.0\AppToDeploy.exe.manifest -ToFile AppToDeploy.application
    
  9. Подписывание манифеста развертывания с помощью сертификата Authenticode или CNG.

    mage -Sign AppToDeploy.application -CertFile mycert.pfx -Password passwd
    
  10. Скопируйте все файлы в каталог развертывания в место развертывания или носитель. Это может быть папка на веб-сайте или FTP-сайте, общей папке или компакт-диске.

  11. Предоставьте пользователям URL-адрес, UNC или физический носитель, необходимый для установки приложения. Если вы предоставляете URL-адрес или UNC, необходимо предоставить пользователям полный путь к манифесту развертывания. Например, если Приложение AppToDeploy развернуто http://webserver01/ в каталоге AppToDeploy, то полный путь URL-адреса будет.http://webserver01/AppToDeploy/AppToDeploy.application

Развертывание приложения с помощью графического средства MageUI.exe

  1. Создайте каталог, в котором будут храниться файлы развертывания ClickOnce.

  2. В только что созданном каталоге развертывания создайте подкаталог версии. Если это первый раз, когда вы развертываете приложение, назовите подкаталог версии 1.0.0.0.0.

    Примечание.

    Версия развертывания, вероятно, отличается от версии приложения.

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

  4. Запустите графическое MageUI.exe средство.

    MageUI.exe
    
  5. Создайте манифест приложения, выбрав "Файл", "Создать", "Манифест приложения" в меню.

  6. На вкладке "Имя по умолчанию " введите имя и номер версии этого развертывания. Также укажите обработчик , для который создано приложение, например x86.

  7. Перейдите на вкладку "Файлы" и нажмите кнопку с многоточием (...) рядом с текстовым полем каталога приложений. Откроется диалоговое окно "Обзор папки ".

  8. Выберите подкаталог версии, содержащий файлы приложения, и нажмите кнопку "ОК".

  9. Если вы будете развертывать из службы IIS (IIS), выберите параметр "При заполнении расширения .deploy" в любой файл, который не имеет его проверка поля.

  10. Нажмите кнопку "Заполнить", чтобы добавить все файлы приложения в список файлов. Если приложение содержит несколько исполняемых файлов, пометьте основной исполняемый файл для этого развертывания в качестве запуска приложения, выбрав точку входа в раскрывающемся списке "Тип файла". (Если приложение содержит только один исполняемый файл, MageUI.exe помечает его для вас.)

  11. Выберите вкладку "Необходимые разрешения" и выберите уровень доверия, который требуется приложению для утверждения. Значение по умолчанию — FullTrust, которое подходит для большинства приложений.

  12. Выберите "Файл", "Сохранить как " в меню. Откроется диалоговое окно "Параметры подписывания" с запросом на подпись манифеста приложения.

  13. Если у вас есть сертификат, хранящийся в файловой системе, используйте параметр "Подписать с файлом сертификата" и выберите сертификат из файловой системы с помощью кнопки с многоточием (...). Затем введите пароль сертификата.

    –или–

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

  14. Нажмите кнопку "ОК ", чтобы подписать манифест приложения. Отображается диалоговое окно Сохранить как .

  15. В диалоговом окне "Сохранить как" укажите каталог версии и нажмите кнопку "Сохранить".

  16. Выберите "Файл", "Создать", "Манифест развертывания" в меню, чтобы создать манифест развертывания.

  17. На вкладке "Имя" укажите имя и номер версии для этого развертывания (1.0.0.0 в этом примере). Также укажите обработчик , для который создано приложение, например x86.

  18. Выберите вкладку "Описание " и укажите значения для издателя и продукта. (Продукт — это имя приложения в Windows меню при установке приложения на клиентском компьютере для автономного использования.)

  19. Перейдите на вкладку "Параметры развертывания" и в текстовом поле "Начальное расположение " укажите расположение манифеста приложения на веб-сервере или общем ресурсе. Например, \\myServer\myShare\AppToDeploy.application.

  20. Если вы добавили .deploy расширение на предыдущем шаге, также выберите использовать расширение имени файла .deploy здесь.

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

  22. Перейдите на вкладку "Ссылка на приложение", а затем нажмите кнопку "Выбрать манифест". Откроется открытое диалоговое окно.

  23. Выберите манифест приложения, созданный ранее, и нажмите кнопку "Открыть".

  24. Выберите "Файл", "Сохранить как " в меню. Откроется диалоговое окно "Параметры подписывания" с запросом на подписание манифеста развертывания.

  25. Если у вас есть сертификат, хранящийся в файловой системе, используйте параметр "Подписать с файлом сертификата" и выберите сертификат из файловой системы с помощью кнопки с многоточием (...). Затем введите пароль сертификата.

    –или–

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

  26. Перейдите в раздел "ОК ", чтобы подписать манифест развертывания. Отображается диалоговое окно Сохранить как .

  27. В диалоговом окне "Сохранить как" переместите один каталог в корневой каталог развертывания и нажмите кнопку "Сохранить".

  28. Скопируйте все файлы в каталог развертывания в место развертывания или носитель. Это может быть папка на веб-сайте или FTP-сайте, общей папке или компакт-диске.

  29. Предоставьте пользователям URL-адрес, UNC или физический носитель, необходимый для установки приложения. Если вы предоставляете URL-адрес или UNC, необходимо предоставить пользователям полный путь к манифесту развертывания. Например, если Приложение AppToDeploy развернуто http://webserver01/ в каталоге AppToDeploy, то полный путь URL-адреса будет.http://webserver01/AppToDeploy/AppToDeploy.application

Следующие шаги

Если необходимо развернуть новую версию приложения, создайте каталог с именем новой версии ( например, 1.0.0.1) и скопируйте новые файлы приложений в новый каталог. Затем необходимо выполнить предыдущие действия, чтобы создать и подписать новый манифест приложения, а также обновить и подписать манифест развертывания. Будьте осторожны, чтобы указать одну и ту же более высокую версию в Mage.exe-New обоих -Update вызовах, так как ClickOnce обновляет только более высокие версии с левым целым числом наиболее значимым. Если вы использовали MageUI.exe, можно обновить манифест развертывания, открыв его, выбрав вкладку "Ссылка на приложение", нажмите кнопку "Выбрать манифест ", а затем выберите обновленный манифест приложения.