我阅读John Robbins的文章TFS 2010 Build Number and Assembly File Versions: Completely In Sync with Only MSBuild 4.0,我想知道如何整合这一点。Tfs2010内部版本号和汇编文件版本和MSBuild目标
该文章的下载有两个文件,一个是目标文件,另一个是proj文件。
的目标文件里有一些任务刮出基于TFS的版本号(同一个用于建立)一个版本号,并编写数出一些位置(称之为BuildNumberFile),用于其他消费proj文件。
该proj文件非常简单。它只是导入上述目标文件,然后声明名称为“All”的目标,同时还将Project元素上的DefaultTargets声明为All。
<Project ToolsVersion="4.0" DefaultTargets="All" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<!-- The two required properties so the Wintellect.TFSBuildNumber tasks knows your major and minor values.-->
<TFSMajorBuildNumber>3</TFSMajorBuildNumber>
<TFSMinorBuildNumber>1</TFSMinorBuildNumber>
</PropertyGroup>
<Import Project="Wintellect.TFSBuildNumber.targets"/>
<!-- Just ask for the version information files you need. These are here to show all the diffent ones in
Wintellect.TFSBuildNumber.Targets. You can change the names -->
<Target Name="All"
DependsOnTargets="WriteSharedCSharpAssemblyVersionFile;
WriteSharedVBAssemblyVersionFile;
WriteSharedCPPCLIAssemblyVersionFile;
WriteSharedCPPAssemblyVersionFile;
WriteSharedWiXAssemblyVersionFile;
WriteSharedTextAssemblyVersionFile;"/>
</Project>
我对这个两个问题:
- 我还在学习的MSBuild。如果目标的名称没有在目标的其他地方指定,目标是否被执行?我如何确保这个目标运行?
- csproj文件是否应该为BuildNumberFile所在的位置声明一个Include项目,即使它在编译时间之前不存在?
- ItemGroups和Include是否有一个DependsOnTargets或者是什么东西可以让他们在构建之前确保文件存在?
- 使用它的csproj文件的全部内容是否应该包含在表示DependencyOnTargets的BuildNumberFile的目标中?
谢谢!