Событие Post Build выполняется до того, как в Visual Studio будет построен MSI WIX Sharp - PullRequest
1 голос
/ 20 февраля 2020

У меня есть несколько проектов, которые генерируют несколько ссылок. и в проекте установщика, который в конечном итоге генерирует файл MSI; используя WIX Sharp.

Существуют события предварительной сборки, записанные для копирования ссылки из другой папки в папку упаковки MSI. Он работает нормально, MSI генерирует успешно.

Теперь я хочу подписать MSI сертификатом подписи кода, проблема в том, что событие пост-сборки выполняется перед запуском сборки MSI и поскольку MSI отсутствует, сборка вызывает ошибки.

Я использую Visual studio 2017.

Код посткомпиляции, который я выполняю

$(ProjectDir)signtool\signtool.exe sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /sm /sha1 [hash] $(ProjectDir)\test.msi

1 Ответ

1 голос
/ 23 февраля 2020

К сожалению, вы не можете подписать MSI в событии Post-Build , если вы действительно используете WixSharp , поскольку пакет MSI создается по вызову ManagedProject.BuildMsi () метод во время выполнения.

Так что я вижу здесь только один обходной путь, вам нужно вызвать Process.Start ("signtool \ signtool.exe ...") " после BuildMsi () выполнение метода

...