2017-04-03 31 views
1

我在TFS 2017中添加了新的構建步驟,將我的DLL打包到nuspec中(NuGet Packager)。 我的問題是我無法設置目標文件夾。如何設置TFS NuGet Packager目標文件夾?

的「包文件夾」的描述是

文件夾,包將被創建。如果爲空,則會在csproj或nuspec文件旁創建包 。

enter image description here

當我離開這個字段爲空我希望它在創建「$/MyProject的/通用/」作爲在信息描述。但它一直在構建器代理根文件夾中創建它。並添加「-OutputDirectory」C:_work \ 24 \ s「」,即使我正在寫包文件夾中的另一個文件夾。

我在做什麼? 是否有更好的方式來打包併發布每個版本的TFS版本的nuget?

的NuGet打包日誌:要放包

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'. 

回答

2

只要指定的文件夾。

Package Folder

指定要放包的文件夾。您可以使用 變量如$(Build.StagingDirectory)\packages

enter image description here


更新

當你離開的文件夾爲空,它將outputdir =製造商代理的根文件夾的自動AddParameter。當你進入$/MyProject/Common它將在builder agent root folder/$/MyProject/Common

enter image description here

創建文件夾底座據位於PowerShell腳本在C:\agent\tasks\NuGetPackager\xxx\NuGetPackager.ps1

$argsPack = "pack `"$fileToPackage`" -OutputDirectory `"$outputdir`" -Properties $buildProps"; 

所以它一定會把它在代理根文件夾。回到說明:

如果你離開它空,包將包含的.csproj或.nuspec文件相同 目錄中創建。

不知道相同的目錄手段是同一個文件夾級別與否。但似乎意味着相同的文件夾級別。

你可以提交一個bug在GITHub-VSTS TasksDevelop Community-Team Services都會得到TFS開發團隊的快速響應。

+0

最終我確實設法直接使用包文件夾路徑和服務器路徑,如$/MyProject/Common。 但問題是,當我把它留空它總是把它放在代理根文件夾中。例如,我的nuspec路徑是直接使用帶有服務器路徑的包文件夾路徑,例如$/MyProject/Common/dir_a/dir_b/mynu.nuspec - > nupkg將在「$」(C: _work),而不是按照預期在「$/MyProject/Common/dir_a/dir_b」中。 –

+1

@AviramFireberger通過更多的細節,得到了和你一樣的結果。不確定相同的目錄是否是相同的文件夾級別。建議您在github中提交錯誤報告或開發社區。更多詳情請參閱我的更新回覆。 –

+0

太好了,謝謝你的詳細回答 –

相關問題