如何设置TFS NuGet Packager目标文件夹?

时间:2017-04-03 06:36:10

标签: tfs build nuget nuget-package nuget-package-restore

我在TFS 2017中添加了新的构建步骤,将我的DLL打包到nuspec( NuGet Packager )中。 我的问题是我无法设置目标文件夹。

包文件夹”的说明是

  

将创建包的文件夹。如果是空的,包将是   与csproj或nuspec文件一起创建。

enter image description here

当我将此字段留空时,我希望它在“$ / MyProject / Common /”中创建,如信息中所述。但它会继续在构建器代理根文件夹中创建它。并添加“ - OutputDirectory”C:_work \ 24 \ s“”即使我正在写包文件夹中的另一个文件夹。

我在做什么呢? 是否有更好的方法来为TFS中的每个版本构建打包和发布nuget?

NuGet Packager日志:

2017-04-02T15:01:51.3457383Z Set workingFolder to default: C:\agent\tasks\NuGetPackager\0.1.72
2017-04-02T15:01:51.3769893Z Executing the powershell script: C:\agent\tasks\NuGetPackager\0.1.72\NuGetPackager.ps1
2017-04-02T15:01:51.6426327Z C:\agent\agent\worker\tools\NuGet.exe pack "C:\_work\24\s\Common\Common.nuspec" -OutputDirectory "C:\_work\24\s" -version 1.0.17092.08
2017-04-02T15:01:52.0332823Z Attempting to build package from 'Common.nuspec'.
2017-04-02T15:01:52.1895494Z Successfully created package 'C:\_work\24\s\Common.1.0.17092.08.nupkg'.

1 个答案:

答案 0 :(得分:2)

只需指定要放置包裹的文件夹即可。

  

<强> Package Folder

     

指定要放置包的文件夹。你可以使用   变量,例如$(Build.StagingDirectory)\packages

enter image description here

更新

当您将文件夹保留为空时,它将自动添加outputdir = builder代理根文件夹的AddParameter。当您输入$/MyProject/Common时,它将在builder agent root folder/$/MyProject/Common

上创建文件夹

enter image description here

根据位于C:\agent\tasks\NuGetPackager\xxx\NuGetPackager.ps1

的powershell脚本
 $argsPack = "pack `"$fileToPackage`" -OutputDirectory `"$outputdir`" -Properties $buildProps";

所以它肯定会把它放在代理根文件夹中。回到说明:

  

如果您将其留空,则会创建相同的包   包含.csproj或.nuspec文件的目录。

不确定同一目录是否相同的文件夹级别。然而,旁边似乎意味着相同的文件夹级别。

您可以在GITHub-VSTS TasksDevelop Community-Team Services中提交错误,这些错误都会得到TFS开发团队的快速响应。