Невозможно подписать файл XAP

Я пытаюсь подписать приложение Silverlight 4 OOB (файл XAP).
Я использую следующую команду:

"C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\signtool.exe" sign /v /f path\to\FILENAME.pfx /p PWD path\to\FILENAME.xap

и я получаю ответ:

The following certificate was selected:
    Issued to: COMPANY NAME
    Issued by: Thawte Code Signing CA
    Expires:   Wed Dec 01 00:59:59 2010
    SHA1 hash: AE57AF01180BF995C7C5B01E235F296CCF611111

Done Adding Additional Store
Successfully signed: FILENAME.xap

Number of files successfully Signed: 1
Number of warnings: 0
Number of errors: 0

Но файл XAP не подписан.
Если я просматриваю свойства в проводнике, в списке нет цифровых подписей. И если я пытаюсь установить его, я получаю непроверенный диалог.
Если я использую точно такую ​​же команду, но для DLL-файла, подпись работает нормально, и я вижу цифровую подпись, примененную к файлу.

Что может быть причиной этого?
Нужна ли другая версия signtool.exe?

Если это имеет значение, PFX изначально был экспортирован с компьютера с XP, и я пытаюсь запустить его на компьютере с Win7 (для dev) и на сервере Win2008 (на сборочном компьютере) и получить одинаковое поведение на обоих.

Редактировать:
Если я проверяю сертификат подписанной DLL, я получаю следующее:

SignTool Error: A certificate chain processed, but terminated in a root 
        certificate which is not trusted by the trust provider.

Похоже, мне нужно установить некоторые корневые сертификаты.

Однако я не уверен, что это объясняет, почему файл XAP не сообщает ни о каком добавляемом сертификате.

1 ответ

Решение

Вы пытались подписать приложение через вкладку "Подписание" в свойствах проекта проекта Silverlight? Если свойства вашего проекта похожи на мои, на самом деле там могут быть две вкладки для подписи (одна предназначена для строгого именования сборки) - вторая, вероятно, будет той, которую вы хотите. Вот ссылка, объясняющая шаги по подписанию XAP: http://blogs.infosupport.com/blogs/alexb/archive/2010/05/10/silverlight-4-digitally-signing-a-xap.aspx. Посмотрите, поможет ли это решить проблему.

Также помните, что простой подписи XAP недостаточно - вам нужно импортировать сертификат в хранилище доверенных корней (что, похоже, не так, как вы). Нажмите кнопку Подробнее... на вкладке Подписи. Вероятно, будет указано, что этот корневой сертификат CA не является доверенным. Сделайте следующее:

  • Нажмите кнопку Установить сертификат в этом диалоговом окне.
  • Нажмите кнопку "Поместить все сертификаты" в следующем хранилище и нажмите кнопку "Обзор...".
  • Выберите элемент Доверенные корневые центры сертификации в дереве
  • Нажмите ОК

Должно появиться другое диалоговое окно, сообщающее, что оно установлено. Теперь перекомпилируйте ваше приложение, и оно должно работать нормально.

Надеюсь это поможет...

Крис

Другие вопросы по тегам