запускать задачи MsBuild (цели?) после построения решения? - PullRequest
4 голосов
/ 30 октября 2009

Так как этот вопрос , кажется, озадачил / обескуражил, поэтому я перефразирую его частично сформированной собственной идеей.

Могу ли я как-то настроить пакетный файл или что-то, что будет запускаться после того, как будет построено все решение , и этот пакетный файл будет вызывать msbuild для создания определенных целей внутри определенного проекта? Чтобы это работало, мне нужно было бы каким-то образом заставить msbuild собрать цель , не обращая внимания на то, считает ли она ее "актуальной" , потому что это основная проблема, которую я ' м, бодаться против.

1 Ответ

3 голосов
/ 31 октября 2009

Поскольку вы имеете дело именно со сборкой, возможно, вы захотите заменить свой командный файл файлом MSBuild. Например:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <ItemGroup>
    <SolutionsToBuild Include="MySolution.sln"/>

    <Projects Include="Proj1.csproj"/>
    <Projects Include="Proj2.csproj"/>
    <Projects Include="Proj3.csproj"/>
  </ItemGroup>

  <Target Name="BuildAll">

    <!-- Just executes the DefaultTargets (Build) -->
    <MSBuild Projects="@(SolutionsToBuild)"/>

    <!-- Call Rebuild if you think its not building correctly -->
    <MSBuild Projects="@(Projects)"
             Targets="Rebuild"/>

  </Target>
</Project>

Затем вы просто запускаете msbuild.exe для этого файла с:

msbuild.exe Build.proj /t:BuildAll

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...