0

我试图让我的构建签出一些文件(使用 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>
4

1 回答 1

2

将您的目标指定为默认目标不会调用它,因为 Team build 会明确设置它要调用的目标。

尝试将目标重命名为 AfterGet 或覆盖 GetDependsOn 属性以包含您的目标

<GetDependsOn>
  $(GetDependsOn)
  MyProjectDbUpdate;
</GetDependsOn>
于 2009-07-16T14:48:45.670 回答