Исполняемый файл не подписан после установки через MSI
-
09-10-2019 - |
Вопрос
У нас есть приложение, которое требует, чтобы пользователь был администратором для запуска. Итак, в app.manifest
Мы настроили
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
У нас есть ключ, чтобы подписать наши сборки, с которыми я смог использовать для подписания MSI и исполняемого файла нашего приложения. Исполняемый файл приложения подписан через signtool.exe
В событии Post Build для проекта.
Если я посмотрю в каталог Bin, исполняемый файл действительно подписан правильно, но после того, как он упакован в msi
и установлен на другой машине, исполняемый файл больше не подписан.
Обычно это не будет огромной проблемой, за исключением того, что нам требуется привилегии admin, поэтому, когда пользователь получает запрос UAC, он отображает неизвестный издатель.
Как я могу получить исполняемый файл подписать после того, как он упакован в MSI?
Решение
Я наконец нашел ответ на неясный блог.
Когда MSI скомпилирован, он не тянет из каталога Bin, он тянет из каталога OBJ. По сути, я подписываю неправильный исполняемый файл.