从TFS MSBuild项目内的引用BuildNumber

从TFS MSBuild项目内的引用BuildNumber,tfs,msbuild,Tfs,Msbuild,我正在尝试设置TFS构建。我已经定制了默认的TFS2013工作流,以便在MSBuild命令之前获取BuildDetail。但是,我现在得到一个生成错误: MSBUILD:错误MSB1008:只能指定一个项目。 开关:不是 对于开关语法,键入“MSBuild/help” 我的命令行参数如下所示: /target:publish;/p:PublishDir=\\Server1\PublishDir\;PublishingURL=https://www.website.com 我一直在研究这个问题,

我正在尝试设置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\u BUILD\u BUILDNUMBER)
会导致生成中出现异常。例外情况没有多大帮助;但它在这里:

运行MSBuild

异常消息:MSBuild错误1已结束此生成。 您可以找到有关此错误原因的更具体信息 在上面的消息中。(类型BuildProcessTerminateException)异常 堆栈跟踪:在 System.Activities.Statements.Throw.Execute(CodeActivityContext (上下文)在 System.Activities.CodeActivity.InternalExecute(ActivityInstance 实例、活动执行器执行器、书签管理器书签管理器) 在 System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor 执行者、书签管理器书签管理器、位置结果位置)


查看之后,我在日志中的任何地方都找不到实际的错误,但是如果我删除对
$(TF\u BUILD\u BUILDNUMBER)
的引用,就可以了。

您不需要修改构建过程模板来执行此操作。2013年,您可以访问一系列环境变量。请参见以下链接中的“在msbuild中使用环境变量数据”一节:


看起来你是对的-但是,一旦我将/p:BuildNumber=“$(TF\u BUILD\u BuildNumber)”添加到我的构建中,它就会崩溃它以什么方式崩溃?