Невозможно подписать файл 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 не является доверенным. Сделайте следующее:
- Нажмите кнопку Установить сертификат в этом диалоговом окне.
- Нажмите кнопку "Поместить все сертификаты" в следующем хранилище и нажмите кнопку "Обзор...".
- Выберите элемент Доверенные корневые центры сертификации в дереве
- Нажмите ОК
Должно появиться другое диалоговое окно, сообщающее, что оно установлено. Теперь перекомпилируйте ваше приложение, и оно должно работать нормально.
Надеюсь это поможет...
Крис