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

После внесения изменений в свойства развертывания в манифесте приложения для приложений Windows Forms, приложений Windows Presentation Foundation (xbap) или решений Office необходимо повторно подписать манифесты приложения и развертывания с помощью сертификата. Этот процесс позволяет проверить, не установлены ли на компьютер конечного пользователя измененные злоумышленниками файлы.

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

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

В этой процедуре предполагается, что вы уже внесли изменения в файл манифеста приложения (.manifest). Дополнительные сведения см. в разделе "Практическое руководство. Изменение свойств развертывания".

Примечание.

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

Чтобы повторно подписать манифесты приложения и развертывания с помощью Mage.exe

  1. Откройте окно командной строки Visual Studio.

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

  3. Введите следующую команду, чтобы подписать файл манифеста приложения. Замените ManifestFileName именем файла манифеста и расширением. Замените сертификат относительным или полным путем файла сертификата и замените пароль паролем для сертификата.

    mage -sign ManifestFileName.manifest -CertFile Certificate -Password Password
    

    Например, можно выполнить следующую команду, чтобы подписать манифест приложения для надстройки, приложения Windows Form или приложения браузера Windows Presentation Foundation. Временные сертификаты, созданные Visual Studio, не рекомендуется развертывать в рабочих средах.

    mage -sign WindowsFormsApplication1.exe.manifest -CertFile ..\WindowsFormsApplication1_TemporaryKey.pfx
    mage -sign ExcelAddin1.dll.manifest -CertFile ..\ExcelAddIn1_TemporaryKey.pfx
    mage -sign WpfBrowserApplication1.exe.manifest -CertFile ..\WpfBrowserApplication1_TemporaryKey.pfx
    
  4. Введите следующую команду, чтобы обновить и подписать файл манифеста развертывания, заменив имена заполнителей, как на предыдущем шаге.

    mage -update DeploymentManifest -appmanifest ApplicationManifest -CertFile Certificate -Password Password
    

    Например, можно выполнить следующую команду, чтобы обновить и подписать манифест развертывания для надстройки Excel, приложения Windows Forms или приложения браузера Windows Presentation Foundation.

    mage -update WindowsFormsApplication1.application -appmanifest WindowsFormsApplication1.exe.manifest -CertFile ..\WindowsFormsApplication1_TemporaryKey.pfx
    mage -update ExcelAddin1.vsto -appmanifest ExcelAddin1.dll.manifest -CertFile ..\ExcelAddIn1_TemporaryKey.pfx
    mage -update WpfBrowserApplication1.xbap -appmanifest WpfBrowserApplication1.exe.manifest -CertFile ..\WpfBrowserApplication1_TemporaryKey.pfx
    
  5. При необходимости скопируйте основной манифест развертывания (publish\<appname.application>) в каталог развертывания версии (publish\Application Files\<appname>_<version>).

Обновление и повторная регистрация манифестов приложения и развертывания

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

Обновление и повторное подписывание манифестов приложения и развертывания с помощью Mage.exe

  1. Откройте окно командной строки Visual Studio.

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

  3. Удалите расширение .deploy из файлов в папке выходных данных публикации.

  4. Введите следующую команду, чтобы обновить манифест приложения с новыми хэшами обновленных файлов и подписать файл манифеста приложения. Замените ManifestFileName именем файла манифеста и расширением. Замените сертификат относительным или полным путем файла сертификата и замените пароль паролем для сертификата.

    mage -update ManifestFileName.manifest -CertFile Certificate -Password Password
    

    Например, можно выполнить следующую команду, чтобы подписать манифест приложения для надстройки, приложения Windows Form или приложения браузера Windows Presentation Foundation. Временные сертификаты, созданные Visual Studio, не рекомендуется развертывать в рабочих средах.

    mage -update WindowsFormsApplication1.exe.manifest -CertFile ..\WindowsFormsApplication1_TemporaryKey.pfx
    mage -update ExcelAddin1.dll.manifest -CertFile ..\ExcelAddIn1_TemporaryKey.pfx
    mage -update WpfBrowserApplication1.exe.manifest -CertFile ..\WpfBrowserApplication1_TemporaryKey.pfx
    
  5. Введите следующую команду, чтобы обновить и подписать файл манифеста развертывания, заменив имена заполнителей, как на предыдущем шаге.

    mage -update DeploymentManifest -appmanifest ApplicationManifest -CertFile Certificate -Password Password
    

    Например, можно выполнить следующую команду, чтобы обновить и подписать манифест развертывания для надстройки Excel, приложения Windows Forms или приложения браузера Windows Presentation Foundation.

    mage -update WindowsFormsApplication1.application -appmanifest WindowsFormsApplication1.exe.manifest -CertFile ..\WindowsFormsApplication1_TemporaryKey.pfx
    mage -update ExcelAddin1.vsto -appmanifest ExcelAddin1.dll.manifest -CertFile ..\ExcelAddIn1_TemporaryKey.pfx
    mage -update WpfBrowserApplication1.xbap -appmanifest WpfBrowserApplication1.exe.manifest -CertFile ..\WpfBrowserApplication1_TemporaryKey.pfx
    
  6. Добавьте расширение ФАЙЛА .deploy обратно в файлы, кроме файлов манифеста приложения и развертывания.

  7. При необходимости скопируйте основной манифест развертывания (publish\<appname.application>) в каталог развертывания версии (publish\Application Files\<appname>_<version>).