Как получить BuildNumber в .proj (MSBuild), используя TFS-сервер - PullRequest
6 голосов
/ 07 сентября 2011

Мы используем TFS 2010 с VS 2010 для веб-проектов PHP.На самом деле у нас нет файлов .proj или .sln, поэтому я сделал свой собственный, чтобы делать сборки, это выглядит так:

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>
    <ItemGroup>
        <ZipFiles Include="**\*.*"/>
    </ItemGroup>

    <Target Name="Zip" >
        <Zip Files="@(ZipFiles)" ZipFileName="$(OutDir)myzip.zip" />
    </Target>

    <Target Name="Build" DependsOnTargets="Zip">
        <Message Text="My Build Complete - $(BuildNumber) - $(TeamProject) - $(BuildProperties)" />
    </Target>
    <Target Name="AfterBuild">
        <MakeDir Directories="Testing" />
        <Message Text="My AfterBuild- $(BuildNumber) "></Message>
    </Target>
</Project>

Я настроил номера сборки в определении сборки в VS как "$(BuildDefinitionName) _ $ (Date: yyyyMMdd) $ (Rev: .r) ", и папка удаления по сетевому пути создана правильно.

Проблема в том, что $ (BuildNumber) или $ (TeamProject) или $(BuildProperties) пусты.Также кажется, что «My Afterbuild» никогда не выполняется.

Почему мои переменные пусты и как получить номер сборки из определения сборки, как указано?

1 Ответ

11 голосов
/ 07 сентября 2011

Для запуска AfterBuild целей:

<DefaultTargets="AfterBuild" />

<Target Name="Build" DependsOnTargets="Zip">

<Target Name="AfterBuild" DependsOnTargets="Build">

Для меня неясно, почему цель Zip должна выполняться до цели Build?

РЕДАКТИРОВАТЬ:

Вам необходимо обновить файл шаблона defaultTemplate.XAML, добавив вручную BuildNumber в командную строку MSBuild, чтобы командная строка выглядела так:

<mtbwa:MSBuild CommandLineArguments="[String.Format(&quot;
        /p:SkipInvalidConfigurations=true 
        /p:BuildNumber={1} {0}&quot;, 
        MSBuildArguments, 
        BuildDetail.BuildNumber)]" />

См. Оригинальную статью об этом приеме: TFS2010 - Где $ (BuildNumber)?

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