gpt4 book ai didi

msbuild - 如何使用TFS服务器在.proj(MSBuild)中获取BuildNumber

转载 作者:行者123 更新时间:2023-12-04 13:54:06 27 4
gpt4 key购买 nike

我们将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>

我已经在VS中的构建定义中将构建号配置为“$(BuildDefinitionName)_ $(Date:yyyyMMdd)$(Rev:.r)”,并且网络路径上的放置文件夹已正确创建。

问题是$(BuildNumber)或$(TeamProject)或$(BuildProperties)为空。另外,似乎“My Afterbuild”从未执行过。

为什么我的变量为空,以及如何从指定的构建定义中获取构建号?

最佳答案

要运行AfterBuild目标:

<DefaultTargets="AfterBuild" />

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

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

对我来说不清楚,为什么应该在 Zip目标之前执行 Build目标?

编辑:

您必须通过将BuildNumber手动添加到MSBuild命令行来更新模板文件 defaultTemplate.XAML,因此命令行类似于:

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

请参阅有关此技巧的原始文章: TFS2010 – Where is $(BuildNumber)?

关于msbuild - 如何使用TFS服务器在.proj(MSBuild)中获取BuildNumber,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7330353/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com