Visual studio 将带标签的文件提取到TFSBuild中
我相信有一个简单的答案,但我的谷歌fu让我失望 我在TFS2008中有一个团队项目,在使用最新代码时构建OK,但是我现在需要在构建时获取文件子集的早期版本。文件的子集都用相同的标签标记(“下面代码段中的MyLabel”) 我添加到TFSBuild.proj文件中的XML片段如下所示:Visual studio 将带标签的文件提取到TFSBuild中,visual-studio,label,tfsbuild,Visual Studio,Label,Tfsbuild,我相信有一个简单的答案,但我的谷歌fu让我失望 我在TFS2008中有一个团队项目,在使用最新代码时构建OK,但是我现在需要在构建时获取文件子集的早期版本。文件的子集都用相同的标签标记(“下面代码段中的MyLabel”) 我添加到TFSBuild.proj文件中的XML片段如下所示: <PropertyGroup> <BuildLabel>LMyLabel</BuildLabel> </PropertyGroup> <T
<PropertyGroup>
<BuildLabel>LMyLabel</BuildLabel>
</PropertyGroup>
<Target Name="BeforeCompile">
<Get
TeamFoundationServerUrl="$(TeamFoundationServerUrl)"
BuildUri="$(BuildUri)"
Condition=" '$(SkipGet)'!='true' "
Workspace="$(WorkspaceName)"
Recursive="$(RecursiveGet)"
Force="$(ForceGet)"
Version ="$(BuildLabel)"
Preview="false"
/>
</Target>
艾米拉贝尔
这将成功地将文件子集提取到源区域中,但也会删除源区域中的所有其他文件
i、 e.构建过程执行以下操作:
<PropertyGroup>
<SkipClean>true</SkipClean>
<SkipInitializeWorkspace>true</SkipInitializeWorkspace>
<ForceGet>false</ForceGet>
</PropertyGroup>
</Project>
符合事实的
符合事实的
错误的
但结果是一样的
所以,我的问题是:当我的解决方案是最新版本和旧的、有标签的版本的混合体时,我如何构建我的解决方案?我错过了什么
(我意识到我可以将基线分支,但出于各种原因,我想首先探讨这种方法)
提前谢谢 我想到的只是一个简单的方法:
你觉得怎么样?值得一试吗?查看C:\Program Files\MSBuild\Microsoft\VisualStudio\TeamBuild\Microsoft.TeamFoundation.Build.targets,似乎为生成获取的版本由GetVersion属性控制。默认情况下,ForceGet是正确的 我还没有测试过,但这对我来说意味着
/property:GetVersion=*versionspec*
当您对生成进行排队时,在MSBuild命令行参数文本框中,它应该获取指定的版本(查找versionspec语法。如果由于某种原因失败,请阅读Aaron Hallberg的文章,直到您比我更好地理解MSBuild:-)是的,我想这会起作用。我曾希望会有一个更好的解决办法,但缺乏答案似乎表明情况并非如此。最后,我走上了这条支线,但我会在未来牢记这一点。谢谢