Вопрос

Я пытаюсь заставить свою сборку извлечь некоторые файлы (используя Microsoft.Sdc.Common.tasks), а затем вернуть их после завершения сборки.Но я, похоже, вообще не могу заставить это работать, не говоря уже о до и после сборки.

Где должен жить такой код?

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="DesktopBuild;MyProjectDbUpdate" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
   <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\TeamBuild\Microsoft.TeamFoundation.Build.targets" />
  <PropertyGroup>
    <TasksPath>C:\Program Files\MSBuild\sdc\</TasksPath>
  </PropertyGroup>
  <Import Project="$(TasksPath)\Microsoft.Sdc.Common.tasks" />

  <Target Name="MyProjectDbUpdate">
    <Message Text="MyProjectDbUpdate checkin start"/>
    <SourceTfs.Checkout  Path="$/MyProject/Code/MyProjectDbUpdate" TfsVersion="2008" workingDirectory="C:\buildagent\MyProject\ContinuousIntegration\Sources\Code" />
    <SourceTfs.Checkin Path="$/MyProject/Code/MyProjectDbUpdate" workingDirectory="C:\buildagent\MyProject\ContinuousIntegration\Sources\Code" Comments="Build checkout/checkin." TfsVersion="2008" Override="Build overrides checkin policy" />
    <Message Text="MyProjectDbUpdate checkin complete"/>
  </Target>


  <ProjectExtensions>

    <ProjectFileVersion>2</ProjectFileVersion>
    <Description>Build</Description>
    <BuildMachine>MYSERVER</BuildMachine>

  </ProjectExtensions>

  <PropertyGroup>
    <TeamProject>MyProject</TeamProject>
    <BuildDirectoryPath>c:\buildagent\MyProject\ContinuousIntegration</BuildDirectoryPath>
    <DropLocation>\\UNKNOWN\drops</DropLocation>
    <RunTest>false</RunTest>
    <RunCodeAnalysis>Never</RunCodeAnalysis>
    <WorkItemType>Bug</WorkItemType>
    <WorkItemFieldValues>System.Reason=Build Failure;System.Description=Start the build using Team Build</WorkItemFieldValues>
    <WorkItemTitle>Build failure in build:</WorkItemTitle>
    <DescriptionText>This work item was created by Team Build on a build failure.</DescriptionText>
    <BuildlogText>The build log file is at:</BuildlogText>
    <ErrorWarningLogText>The errors/warnings log file is at:</ErrorWarningLogText>
    <UpdateAssociatedWorkItems>true</UpdateAssociatedWorkItems>
    <AdditionalVCOverrides></AdditionalVCOverrides>
    <CustomPropertiesForClean></CustomPropertiesForClean>
    <CustomPropertiesForBuild></CustomPropertiesForBuild>

  </PropertyGroup>

  <ItemGroup>
    <SolutionToBuild Include="$(BuildProjectFolderPath)/../../Code/MyProject.sln">
        <Targets></Targets>
        <Properties></Properties>
    </SolutionToBuild>

  </ItemGroup>

  <ItemGroup>
    <ConfigurationToBuild Include="Release|Any CPU">
        <FlavorToBuild>Release</FlavorToBuild>
        <PlatformToBuild>Any CPU</PlatformToBuild>
    </ConfigurationToBuild>

  </ItemGroup>

  <ItemGroup>
  </ItemGroup>

  <PropertyGroup>
  </PropertyGroup>

  <ItemGroup>
  </ItemGroup>
</Project>
Это было полезно?

Решение

Указание вашей цели в качестве цели по умолчанию не приведет к ее вызову, поскольку явность сборки команды задает цель, которую она будет вызывать.

Попробуйте переименовать цель в AfterGet или переопределить свойство GetDependsOn, чтобы включить вашу цель.

<GetDependsOn>
  $(GetDependsOn)
  MyProjectDbUpdate;
</GetDependsOn>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top