我们将TFS 2010与VS 2010一起用于PHP Web项目.实际上我们没有任何.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>
Run Code Online (Sandbox Code Playgroud)
我已在VS中的构建定义中将构建号配置为"$(BuildDefinitionName)_ $(Date:yyyyMMdd)$(Rev:.r)",并且正确创建了网络路径上的drop文件夹.
问题是$(BuildNumber)或$(TeamProject)或$(BuildProperties)是空的.此外,似乎"我的Afterbuild"从未执行过.
为什么我的变量为空以及如何从指定的构建定义中获取构建号?
sll*_*sll 11
要运行AfterBuild目标:
<DefaultTargets="AfterBuild" />
<Target Name="Build" DependsOnTargets="Zip">
<Target Name="AfterBuild" DependsOnTargets="Build">
Run Code Online (Sandbox Code Playgroud)
对我来说还不清楚为什么Zip目标应该在Build目标之前执行?
编辑:
您必须defaultTemplate.XAML通过手动将BuildNumber添加到MSBuild命令行来更新模板文件,因此命令行将类似于:
<mtbwa:MSBuild CommandLineArguments="[String.Format("
/p:SkipInvalidConfigurations=true
/p:BuildNumber={1} {0}",
MSBuildArguments,
BuildDetail.BuildNumber)]" />
Run Code Online (Sandbox Code Playgroud)
请参阅有关此技巧的原始文章:TFS2010 - $(BuildNumber)在哪里?
| 归档时间: |
|
| 查看次数: |
9085 次 |
| 最近记录: |