Сборка кода перед созданием программы установки - PullRequest
0 голосов
/ 16 сентября 2010

Я пытаюсь обновить наш процесс сборки, чтобы он подписывал код всех сборок и установщиков: 1) Сборка всех проектов 2) Подпишите свои выводы 3) Сборка инсталляторов (msi, с установочными проектами VS2010) 4) Войти установщикам

Проблема, с которой я столкнулся, заключается в том, что на шаге 3 установщик-проект берет основной вывод из папки obj. Но на шаге 2 я беру выходные данные MSBuild-Task, и они находятся в папке bin. Таким образом, у меня есть неподписанный первичный вывод в моем MSI.

MSBuild-вызов:

<MSBuild Projects="%(SolutionFiles.FullPath)" ContinueOnError ="false" Properties="Configuration=$(BuildConfiguration)" Targets="Build">
        <Output TaskParameter="TargetOutputs" ItemName="AssembliesBuildByChildProjects"/>
    </MSBuild>

Подпись работает с cmd-файлом:

<Exec 
        Command="&quot;$(SignPath)signcode.cmd&quot;  &quot;%(AssembliesBuildByChildProjects.Fullpath)&quot; /t"
        WorkingDirectory="$(SignPath)" />

Спасибо

1 Ответ

0 голосов
/ 17 сентября 2010

Я нашел решение для этого, не очень приятно - но может быть и хуже: -)

Я просто подписываю все выходные файлы, расположенные в папке obj-Folder:

<ItemGroup>
        <PrimaryOut 
            Include="@(AssembliesBuildByChildProjects->'..\**\obj\**\%(FileName).%(Extension)')" />
    </ItemGroup>

    <Exec
        Command="&quot;$(SignPath)signcode.cmd&quot;  &quot;%(PrimaryOut.Fullpath)&quot; /t"
        WorkingDirectory="$(SignPath)" />
    <Exec 
        Command="&quot;$(SignPath)signcode.cmd&quot;  &quot;%(AssembliesBuildByChildProjects.Fullpath)&quot; /t"
        WorkingDirectory="$(SignPath)" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...