2017-03-01 68 views
0

在構建定義中,我在msbuild參數中包含以下參數: /p:DeployOnBuild = true/p:WebPublishMethod = FileSystem/p:PackageLocation = $(build。 stagingDirectory)\ DeployPackages \/p:PackageAsSingleFile = FALSE/p:SkipInvalidConfigurations = TRUE/p:AutoParameterizationWebConfigConnectionStrings =假/ p:GenerateProjectSpecificOutputFolder =需要真正TFS構建定義使用msbuild參數生成登臺目錄中的文件

所有文件都發生在DeployPackages文件夾,但文件夾和子文件夾列表去代碼是很大的。有沒有辦法減少文件夾的數量? _work \ 5 \ A \ DeployPackages \存檔\內容\ d_C \ tfsbuild_work \ 5 \ S \ MAIN \ AdService \ OBJ \ DEVE \包\ PackageTmp \

,它是一個包含我需要複製該文件的PackageTmp文件夾到我們的服務器。

感謝

+0

的構建過程中,你使用的是哪個XAML或Vnext建? –

回答

0

更新

爲了減少文件夾路徑和結構,你可以在包的位置使用其他參數,而不是$(build.stagingDirectory)。如

/p:PackageLocation="$(BuildConfiguration)"\DeployPackages\XX.zip 

/p:PackageLocation="$(build.artifactstagingdirectory)\DeployPackages\XX.zip 

此外,如果你有任何長路徑的問題,最有效,最簡便的方法仍然花了一些時間調整您的文件/文件夾結構。

例如:而不是\xx\Build\Drop\ProjectName,只需使用\xx\Build\Drop(或\xx\Builds),因爲該項目名稱也是在構建名稱。

+0

我正在使用下一個構建服務(vnext)。 我想從去: _work \ 5 \ A \ DeployPackages \存檔\內容\ d_C \ tfsbuild_work \ 5 \ S \ MAIN \ AdService \ OBJ \ DEVE \包\ PackageTmp \ 這樣: _work \ 5 \ a \ DeployPackages \ AdService [這是項目名稱] \如果我更改了msbuild參數PackageAsSingleFile = true,則需要在此放置 。它將生成一個zip文件,而不是將文件放入文件夾結構中,但zip中的文件夾結構與另一個文件夾結構相同。 –

+0

建議您使用'/ p:PackageAsSingleFile = true'。一些博客供您參考[如何從命令行打包部署的Web項目](https://blogs.endjin.com/2016/10/how-to-package-a-web-project-for-deployment-從命令行/)。你的'build.stagingDirectory'可能有問題。仔細檢查一下,如果你的'build.stagingDirectory'太長而且太臃腫。文件夾結構的包位置必須相同。 –

+0

@CaptainKirk此外,您也可以嘗試將'/ p:PackageLocation'更改爲'/ p:PackageLocation =「$(BuildConfiguration)'」,例如此鏈接中提到的:http://stackoverflow.com/questions/33904574/using-visual-studio-team-services-to-build-a-solution-containing-multiple-web-ap –

0

您可以使用此參數:

/p:outdir="$(build.artifactstagingdirectory)\DeployPackages" 
相關問題