Build “使用VS在线”;命令行“;具有相对路径的任务

Build “使用VS在线”;命令行“;具有相对路径的任务,build,nuget,azure-devops,Build,Nuget,Azure Devops,我正在尝试使用新的VS在线构建过程,特别是将我的应用程序打包为NuGet包 为此,我必须执行类似“nuget pack”的操作。我的源代码在GitHub中,在根文件夹下有一个名为.nuget的文件夹,其中包含了打包所需的所有内容 我已在构建模板中添加了一个带有以下参数的“命令行”步骤: 工具:C:\a\9ea8689c\myusername\myproject.nuget\nuget.exe 参数:pack 其他所有内容都是默认设置,包括工作文件夹。这很有效。但是,当我尝试替换“.nuget

我正在尝试使用新的VS在线构建过程,特别是将我的应用程序打包为NuGet包

为此,我必须执行类似“nuget pack”的操作。我的源代码在GitHub中,在根文件夹下有一个名为.nuget的文件夹,其中包含了打包所需的所有内容

我已在构建模板中添加了一个带有以下参数的“命令行”步骤:

  • 工具:C:\a\9ea8689c\myusername\myproject.nuget\nuget.exe
  • 参数:pack
其他所有内容都是默认设置,包括工作文件夹。这很有效。但是,当我尝试替换“.nuget/nuget.exe”或“.nuget/nuget.exe”之类的绝对路径,甚至将工作文件夹更改为.nuget,然后键入“nuget.exe”时,由于找不到工具,它会重复失败


我错过什么了吗?任务是否应该使用相对路径?

您应该使用绝对路径,例如
TF\u BUILD\u BUILDDIRECTORY。

在批处理文件中,它类似于

echo Launching my own NuGet copy
%TF_BUILD_BUILDDIRECTORY%\myproject.nuget\nuget.exe

这对我有用:
$(BUILD.SOURCESDIRECTORY)\NuGet.exe
。 请注意点而不是下划线。我已将我的NuGet.exe放在主存储库文件夹中,以我的NuGet 3.5 Beta版为例


有关VS Online vNext构建环境变量的更具体描述,请查看:在我的vNext TFS 2015构建中,我只能从源dir变量中获取值,而不使用前导的TF_u。。。类似于$(BUILD\u sources目录)。