从TFS MSBuild项目内部引用BuildNumber

时间:2014-12-23 11:31:49

标签: tfs msbuild tfs2013

我正在尝试设置TFS版本。我已经定制了默认的TFS2013工作流,以便在MSBuild命令之前获取BuildDetail。但是,我现在遇到了构建错误:

  

MSBUILD:错误MSB1008:只能指定一个项目。   切换:不是

     

对于切换语法,请键入“MSBuild / help”

我的命令行参数如下:

/target:publish;/p:PublishDir=\\Server1\PublishDir\;PublishingURL=https://www.website.com

我已经玩过这个了,因为我在这里读了几个问题,这些问题都指向一个空格,引用或错误位置的斜线。

我还将MSBuild命令更改为:

String.Format("/p:SkipInvalidConfigurations=true /p:BuildNumber={1} {0}", AdvancedBuildSettings.GetValue(Of String)("MSBuildArguments", String.Empty), BuildDetail.BuildNumber)

我的目标是从proj文件中访问BuildNumber。

有人能指出我正确的方向来诊断吗?

编辑:

根据下面@ sburgess123的回答,使用$(TF_BUILD_BUILDNUMBER)会导致构建中出现异常。例外并没有大的帮助;但它在这里:

  

运行MSBuild

     
    

异常消息:MSBuild错误1已结束此构建。     您可以找到有关此错误原因的更多具体信息     在上面的消息。 (类型BuildProcessTerminateException)异常     堆栈跟踪:at     System.Activities.Statements.Throw.Execute(CodeActivityContext     上下文)     System.Activities.CodeActivity.InternalExecute(ActivityInstance     实例,ActivityExecutor执行程序,BookmarkManager bookmarkManager)     在     System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor     executor,BookmarkManager bookmarkManager,Location resultLocation)

  

看了之后,我在日志中的任何地方都找不到实际的错误,但是如果删除对$(TF_BUILD_BUILDNUMBER)的引用就没关系了。

1 个答案:

答案 0 :(得分:0)

您不需要修改构建过程模板来执行此操作。 2013年,您可以访问许多环境变量。请参阅msbuild'中使用环境变量数据部分。在以下链接中:

http://msdn.microsoft.com/en-gb/library/hh850448.aspx