2017-05-08 80 views
2

我想在TFS中编写一个构建步骤,它依赖于知道构建代理程序已存储nuget.exe的位置(标准nuget-install步骤以破坏构建执行的方式绕过参数顺序,因此我想要使用批处理/ shell/ps步骤之一自行运行exe)。在构建步骤中可以获取TFS构建代理用户功能的值吗?

看起来,在具有该路径的构建代理上设置功能是有道理的,但我似乎无法参考任何构建步骤中的值,并且我无法在MSDN上找到任何有用的信息。

我期待它像$(Env.MyUserCapability),但它永远不会解决价值。

是否可以在构建步骤中检索功能值?如果是这样,你怎么做?如果不是,什么是可行的替代方案?

回答

1

用户定义的功能只是元数据。但是,您可以设置全局环境变量(例如NUGET),并将其设置为nuget.exe的路径,当您重新启动代理时,机器范围的环境将作为能力被发现,然后您可以使用它。

如果您正在编写自定义任务,则还可以将nuget.exe添加到将要下载到执行代理的任务中。

+0

是的,我想过这样做...然后我可以使用这个能力来表示这个全局环境变量已经设置。这似乎是一个浪费,不允许构建步骤来访问那里的值... 如果你不介意,你如何访问它? – Izzy

+0

包含的任务有一个嵌入的nuget.exe,如果你正在编写一个任务(而不仅仅是一个命令步骤),你可以做同样的事情。 –

+0

%GLOBAL_VAR_NAME% (facepalm) 但是你也可以把它放在作为用户变量,如果您知道构建代理运行的用户是什么。 – Izzy

相关问题