2009-07-16 7 views
0

Ich versuche, meine Build einige Dateien (mit Microsoft.Sdc.Common.Tasks) zu überprüfen und dann nach Abschluss der Erstellung einchecken. Aber ich kann nicht scheinen, dass das funktioniert, geschweige denn vor und nach dem Build.TFS Build SourceTfs.Checkout

Whereabouts sollte diese Art von Code leben?

<?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> 

Antwort

2

Ihr Ziel als Standardziel angeben wird es nicht nennen, wie Team-Aufbau setzt explizit das Ziel es nennen wird.

versuchen, das Ziel zu AfterGet Umbenennen oder Überschreiben der die GetDependsOn Eigenschaft Ziel

<GetDependsOn> 
    $(GetDependsOn) 
    MyProjectDbUpdate; 
</GetDependsOn> 
+0

So einfach sind, aber ich völlig verfehlt den Punkt, wie Ziele arbeiten ... Danke – simon831