Подписание манифестов приложения и развертывания

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

Сведения в этой статье применяются только в том случае, если вы используете платформа .NET Framework 4.7.2 или более ранней версии. Если вы используете .NET 5 или более поздней версии, выполните действия, описанные в статье "Развертывание классического приложения для .NET Windows с помощью ClickOnce".

Дополнительные сведения о развертывании ClickOnce см. в статье Развертывание и безопасность технологии ClickOnce.

Подписывание манифестов ClickOnce для приложений на базе EXE является необязательным. Дополнительные сведения см. в разделе "Создание неподписанных манифестов" этого документа.

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

Примечание.

Visual Studio поддерживает только файлы ключей для обмена личной информацией (PFX). Тем не менее, можно выбрать другие типы сертификатов из хранилища сертификатов текущего пользователя Windows, щелкнув Выбрать из хранилища на странице Подписывание свойств проекта.

Вход с использованием сертификата

Чтобы использовать этот метод, необходимо иметь сертификат, подписанный центром сертификации (ЦС). Сертификаты выдаются сторонними поставщиками услуг сертификации или авторизованными организациями в корпоративной среде.

  1. Перейдите в окно свойств проекта (в обозревателе решений щелкните узел проекта правой кнопкой мыши и выберите пункт Свойства). На вкладке Подписывание установите флажок Подписать манифесты ClickOnce.

  2. Нажмите кнопку Выбрать из хранилища.

    Появляется диалоговое окно Выбор сертификата с содержимым хранилища сертификатов Windows.

    Совет

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

  3. Выберите сертификат, который хотите использовать для подписи манифестов.

    Совет

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

  4. Кроме того, можно указать адрес сервера меток времени в текстовом поле URL-адрес сервера меток времени. Этот сервер предоставляет метку времени, указывающую, когда был подписан манифест. Обычно он предоставляется той же сторонней стороной, которая предлагает сертификаты, подписанные ЦС.

Вход с использованием существующего файла ключа

  1. На странице Подписывание установите флажок Подписать манифесты ClickOnce.

  2. Нажмите кнопку Выбрать из файла.

    Открывается диалоговое окно Выбор файла.

  3. В диалоговом окне Выбор файла найдите требуемый файл ключа (PFX) и нажмите кнопку Открыть.

    Примечание.

    Этот параметр поддерживает только файлы с расширением PFX. При наличии файла ключа или сертификата в другом формате сохраните его в хранилище сертификатов Windows и выберите сертификат, описанный в предыдущей процедуре. Назначение выбранного сертификата должно включать в себя подписывание кода.

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

  4. Введите пароль для доступа к файлу ключа и нажмите клавишу ВВОД.

Примечание.

PFX-файл не может содержать сведения о цепочке сертификатов. Если это так, возникнет следующая ошибка импорта: не удается найти сертификат и закрытый ключ для расшифровки. Чтобы удалить сведения о цепочке сертификатов, можно использовать Certmgr.msc и отключить параметрВключить все сертификаты при экспорте файла PFX.

Вход с использованием тестового сертификата

Тестовые сертификаты не подписаны центром сертификации (ЦС) и должны использоваться только для тестирования. Дополнительные сведения о тестовых сертификатах см. в разделе "Использование центров сертификации" для пользователей.

  1. На странице Подписывание установите флажок Подписать манифесты ClickOnce.

  2. Чтобы создать сертификат для тестирования, нажмите кнопку Создание тестового сертификата.

  3. В диалоговом окне Создание тестового сертификата введите пароль для защиты тестового сертификата.

Создание неподписанных манифестов

Подписывание манифестов ClickOnce является необязательным для .exeприложений на основе. Следующие процедуры демонстрируют создание неподписанных манифестов ClickOnce.

Важно!

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

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

Создание неподписанных манифестов и включение всех файлов в создаваемый хэш

Для создания неподписанных манифестов, которые включают все файлы в хэш, нужно сначала опубликовать приложение вместе с подписанными манифестами. Таким образом, сначала подпишите манифесты ClickOnce, выполнив одну из предыдущих процедур, а затем опубликуйте приложение.

  1. На вкладке "Подписывание" снимите флажок "Подписать манифесты ClickOnce" проверка.

  2. На вкладке "Публикация" сбросьте версию публикации , чтобы доступна только одна версия приложения. Снимите флажок проверка для автоматического увеличения версии каждой публикации. По умолчанию Visual Studio автоматически увеличивает номер редакции для версии публикации при каждой публикации приложения. Дополнительные сведения см. в статье Практическое руководство. Установка версии публикации приложения ClickOnce.

  3. Опубликуйте приложение. Visual Studio сообщает, что приложение было подписано с помощью другого ключа, отличного от существующего приложения на сервере, и спрашивает, нужно ли перезаписать его. Выберите Да.

Создание неподписанных манифестов и исключение одного или нескольких файлов из создаваемого хэша

  1. На странице Подписывание снимите флажок Подписать манифесты ClickOnce.

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

    Примечание.

    Исключение файла из хэша настраивает ClickOnce на отключение автоматической подписи манифестов, поэтому вам не нужно сначала публиковать приложение с подписанными манифестами, как описано в предыдущей процедуре.

  3. Опубликуйте приложение.