Я устанавливаю новый ноутбук для разработки и установил самостоятельно выданный сертификат подписи кода.Я вижу его в certmgr в разделе «Личные сертификаты моих текущих пользователей».
При попытке выполнить сборку из командной строки разработчика для Visual Studio 2017 я получаю:
error : SignTool Error: No certificates were found that met all the given criteria.
Это всегдаотлично работал на моем старом ноутбуке.
Я обнаружил, запускаю ли я ту же сборку из командной строки после запуска как admin , что signtool завершается успешно и может найти сертификат.
Это случилось с 3/4 коллегами, когда мы установили новые ноутбуки.Один парень в порядке и может подписаться без участия администратора.На наших старых ноутбуках нам никогда не приходилось работать с правами администратора.
Я пытался поискать в Google, чтобы найти причину, потому что я не знал, что работа с правами администратора или нет должна иметь какое-либо влияние на это.Я не нашел никаких ссылок на эту проблему.
Как мы можем использовать signtool.exe, не запуская его от имени администратора?
Когда он не работает от имени администратора, это похоже на фильтр закрытого ключашаг, на котором отфильтровывается сертификат, который я ожидаю выбрать:
**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.9.12
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************
C:\>signtool sign /v /debug /ph /i "<issuedby>" /fd sha256 /td sha256 "C:\TestSign.dll"
The following certificates were considered:
Issued to: Scott Langham
Issued by: <issuedby>
Expires: Sun Sep 25 09:54:55 2022
SHA1 hash: <a_hash>
Issued to: Scott Langham
Issued by: <issuedby_somethingelse>
Expires: Wed May 13 15:51:14 2020
SHA1 hash: <b_hash>
After EKU filter, 1 certs were left.
After expiry filter, 1 certs were left.
After Issuer Name filter, 1 certs were left.
After Private Key filter, 0 certs were left.
SignTool Error: No certificates were found that met all the given criteria.
Я удостоверился, что версия signtool.exe, которую я использую, совпадает с той, которую использует мой коллега, у которого есть этотработает использует (10.0.18362.1).Мне удалось обнаружить любые другие различия между нашими системами.