Поделиться через


Пошаговое руководство. Развертывание приложения 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.

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

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

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

    Варианты распространения включают в себя: веб, общий доступ к файлам или CD. Дополнительные сведения см. в разделе "Безопасность и развертывание ClickOnce".

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

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

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

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

    Замечание

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

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

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

    Если приложение содержит манифест с подробными сведениями об 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, установите флажок Добавлять расширение .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, поскольку ClickOnce обновляет только более высокие версии, при этом самое левое целое число является наиболее значимым. Если вы использовали MageUI.exe, вы можете обновить манифест развертывания, открыв его, выбрав вкладку "Ссылка на приложение ", нажмите кнопку "Выбрать манифест ", а затем выберите обновленный манифест приложения.