Подписать файл MSBuild с инкрементальной сборкой - PullRequest
0 голосов
/ 25 сентября 2018

Я использую следующее, чтобы подписать свою выходную DLL.

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

Я пытался использовать Inputs="$(TargetPath)" Outputs="$(TargetPath)", но это совсем не запускает задачу подписи.

Возможное решение - скомпилировать в другую папку и затем скопировать с подписью, что делает это более громоздким.

Есть ли что-то попроще?

<Target Name="Sign" AfterTargets="Build">
    <Exec Command="signtool sign /f &quot;$(SolutionDir)my.pfx&quot; /p password /t http://timestamp.verisign.com/scripts/timstamp.dll &quot;$(TargetPath)&quot;" />
</Target>

1 Ответ

0 голосов
/ 26 сентября 2018

Подписать файл MSBuild с инкрементной сборкой

Как вы знаете, нам не нужно каждый раз подписывать выходную dll, поэтому обычно мы всегда используем командную строку с командной строкой длязаполните его, когда нам нужно подписать его:

SignTool.exe (инструмент подписи) :

Этот инструмент автоматически устанавливается вместе с Visual Studio.Чтобы запустить инструмент, используйте командную строку разработчика (или командную строку Visual Studio в Windows 7).Для получения дополнительной информации см. Командные строки.

Или мы могли бы использовать настраиваемую цель для ее выполнения, но без AfterTargets="Build, в противном случае она всегда будет выполняться при сборке проекта, так же, как высказал "который убивает инкрементную сборку."

Когда нам нужно подписать выходную dll, мы используем MSBuild.exe для создания проекта с указанием цели Sign, например:

MSBuild.exe /t:build,test "Yoursolution.sln"

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

...