我在TFS 2017中添加了新的构建步骤,将我的DLL打包到nuspec( NuGet Packager )中。 我的问题是我无法设置目标文件夹。
“包文件夹”的说明是
将创建包的文件夹。如果是空的,包将是 与csproj或nuspec文件一起创建。
当我将此字段留空时,我希望它在“$ / 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'.
答案 0 :(得分:2)
只需指定要放置包裹的文件夹即可。
<强> Package Folder 强>
指定要放置包的文件夹。你可以使用 变量,例如
$(Build.StagingDirectory)\packages
更新
当您将文件夹保留为空时,它将自动添加outputdir = builder代理根文件夹的AddParameter。当您输入$/MyProject/Common
时,它将在builder agent root folder/$/MyProject/Common
根据位于C:\agent\tasks\NuGetPackager\xxx\NuGetPackager.ps1
$argsPack = "pack `"$fileToPackage`" -OutputDirectory `"$outputdir`" -Properties $buildProps";
所以它肯定会把它放在代理根文件夹中。回到说明:
如果您将其留空,则会创建相同的包 包含.csproj或.nuspec文件的目录。
不确定同一目录是否相同的文件夹级别。然而,旁边似乎意味着相同的文件夹级别。
您可以在GITHub-VSTS Tasks或Develop Community-Team Services中提交错误,这些错误都会得到TFS开发团队的快速响应。