Как я могу использовать командный файл для решений MSBuild в нескольких каталогах одновременно? - PullRequest
3 голосов
/ 08 марта 2012

Я стажер в начинающей компании.Я ничего не знаю о пакетных файлах, файлах XML, командной строке или msbuild.Я знаю только основы C #.

Меня попросили создать командный файл, который позволит пользователю создавать ВСЕ решения в каталоге с семью подпапками в одной команде.Я знаю, как создать одно решение в одной папке (используя msbuild mysolution.sln), но мне не хватает построить множество решений из семи разных папок.

Можно создать командный файл, который позволяет msbuildнайти все файлы решений в подпапках и собрать их все сразу?

Заранее спасибо всем, кто может помочь.

1 Ответ

13 голосов
/ 08 марта 2012
  1. Сохранить следующий целевой файл как buildall.targets в корне каталога ваших решений

    <Project ToolsVersion="4.0" 
             xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
             DefaultTargets="Default">
    
        <ItemGroup>
            <AllFiles Include=".\**\*.sln"/>
        </ItemGroup>
    
        <Target Name="Default">
             <MSBuild Projects="@(AllFiles)"/>
        </Target>
    
     </Project>
    
  2. Создать пакетный файл с именем BuildAll.cmd со следующим содержимым: (изменение пути к msbuild.exe зависит от используемой версии .NET Framework)

    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild buildall.targets
    
  3. Выполнить / выполнить BuildAll.cmd

См. MSDN: Как: выбрать файлы для сборки для получения дополнительной информации о рекурсивном обходе папок, особенно в части «Задание входных данных с подстановочными знаками», часть

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