Сделайте цель выполненной однажды на уровне Решения в MSBuild

Мне нужен ряд задач, которые должны быть выполнены точно однажды для всего решения. Это выполнит задачи, которые изменят каждый проект выполнить отдельный набор задач для каждого проекта. Мы сделали это более раннее использование отдельного проекта к решению, которое имело задачи уровня решения, но мы хотим переехать от этого. Кто-либо сделал это, или у кого-либо есть какие-либо предложения о том, как реализовать это?

11
задан Sayed Ibrahim Hashimi 16 March 2010 в 16:09
поделиться

1 ответ

Поскольку файлы решения не имеют формат MSBuild, их нелегко расширить или настроить. Если вы хотите получить больший контроль над процессом сборки, вам придется создать файл msbuild «драйвер», который заменит ваш файл решения. Внутри этого файла драйвера вы должны собрать все необходимые проекты и выполнить некоторые дополнительные задачи. Это можно сделать с помощью задачи MSBuild . Вот пример, показывающий, как создать более 1 проекта.

<Project ...>
    <ItemGroup>
        <Projects Include="proj01.csproj"/>
        <Projects Include="proj02.csproj"/>
        <Projects Include="proj03.csproj"/>
    </ItemGroup>

    <Target Name="BuildAll">
        <MSBuild Projects="@(Projects)" BuildInParallel="true" />
    </Target>

</Project>

Итак, в вашем случае вы просто выполняете задачи перед сборкой проектов. Также обратите внимание, что я указал значение true для BuildInParallel , что означает, что MSBuild может попытаться собрать более одного проекта одновременно.

7
ответ дан 3 December 2019 в 11:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: