У меня есть wixproj, который создает MSI со ссылками на csproj. Это строится на teamcity, с несколькими этапами сборки:
- Установка NuGet
- Сборка csproj (цели по умолчанию)
- Запустите signtool на встроенном .exe
- Сборка wixproj (цели по умолчанию)
- Запускаем signtool на встроенном .msi
MSI подписывается, но после установки .exe - нет.
Исследуя это, выясняется, что запуск msbuild с целями по умолчанию на wixproj перестраивает exe, перезаписывая подписанный.
Я попытался изменить цели на этапе сборки wixproj, но «Свеча» неизвестна, а «Компиляция» выдает ошибку «Неопределенная переменная препроцессора '$ (var.App.TargetPath)'».
%SdkPath%\signtool sign /a %WorkDir%\%Project%\bin\%Configuration%\%Executable%
. Я бы предпочел не помещать его в файл проекта, так как он относится только к серверу сборки, а не к машине разработки. - person Morten Nilsen   schedule 07.07.2017