使用具有相对路径的 VS Online "Command Line" 任务
Use VS Online "Command Line" task with relative paths
我正在尝试使用新的 VS 在线构建过程,具体来说,将我的应用打包为 NuGet 包。
为此,我必须执行类似 "nuget pack" 的操作。我的源代码在 GitHub 中,在根文件夹下,我有一个名为 .nuget 的文件夹,其中包含打包所需的所有内容。
我已经使用以下参数向我的构建模板添加了一个 "Command Line" 步骤:
- 工具:C:\aea8689c\myusername\myproject.nuget\nuget.exe
- 参数:包
其他一切都是默认值,包括工作文件夹。这行得通。但是,当我尝试将绝对路径替换为“.nuget/nuget.exe”或 .nuget/nuget.exe 或什至将工作文件夹更改为 .nuget 并从那里输入 "nuget.exe" 反复失败,因为找不到工具。
我错过了什么吗?任务是否应该使用相对路径?
您应该使用利用 TFS Environment Variables 的绝对路径,例如 TF_BUILD_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 在线构建过程,具体来说,将我的应用打包为 NuGet 包。
为此,我必须执行类似 "nuget pack" 的操作。我的源代码在 GitHub 中,在根文件夹下,我有一个名为 .nuget 的文件夹,其中包含打包所需的所有内容。
我已经使用以下参数向我的构建模板添加了一个 "Command Line" 步骤:
- 工具:C:\aea8689c\myusername\myproject.nuget\nuget.exe
- 参数:包
其他一切都是默认值,包括工作文件夹。这行得通。但是,当我尝试将绝对路径替换为“.nuget/nuget.exe”或 .nuget/nuget.exe 或什至将工作文件夹更改为 .nuget 并从那里输入 "nuget.exe" 反复失败,因为找不到工具。
我错过了什么吗?任务是否应该使用相对路径?
您应该使用利用 TFS Environment Variables 的绝对路径,例如 TF_BUILD_BUILDDIRECTORY.
在批处理文件中类似于
echo Launching my own NuGet copy
%TF_BUILD_BUILDDIRECTORY%\myproject.nuget\nuget.exe
这对我有用:$(BUILD.SOURCESDIRECTORY)\NuGet.exe
。
注意点而不是下划线。我已将 NuGet.exe 放在主存储库文件夹中,在我的例子中是 NuGet 3.5 Beta。