Definisi TFS Build menggunakan argumen msbuild untuk menghasilkan file dalam direktori pementasan

Dalam definisi build, saya memiliki parameter tersebut dalam argumen msbuild: /p:DeployOnBuild=true /p:WebPublishMethod=FileSystem /p:PackageLocation=$(build.stagingDirectory)\DeployPackages\ /p:PackageAsSingleFile=false /p:SkipInvalidConfigurations =benar /p:AutoParameterizationWebConfigConnectionStrings=Salah /p:GenerateProjectSpecificOutputFolder=benar

Semua file yang diperlukan ditempatkan di folder DeployPackages, tetapi daftar folder dan subfolder untuk mendapatkan kodenya terlalu besar. Apakah ada cara untuk mengurangi jumlah folder? _work\5\a\DeployPackages\Archive\Content\d_C\tfsbuild_work\5\s\Main\AdService\obj\DEVE\Package\PackageTmp\

dan itu adalah folder PackageTmp yang berisi file yang perlu saya salin ke server kami.

terima kasih


person Captain Kirk    schedule 01.03.2017    source sumber
comment
Versi mana yang Anda gunakan? Versi XAML atau Vnext?   -  person PatrickLu-MSFT    schedule 02.03.2017


Jawaban (2)


Anda dapat menggunakan argumen ini:

/p:outdir="$(build.artifactstagingdirectory)\DeployPackages"
person Eddie Chen - MSFT    schedule 06.03.2017

Perbarui

Untuk mengurangi jalur dan struktur folder, Anda dapat menggunakan argumen lain selain $(build.stagingDirectory) di lokasi paket. Seperti

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

or

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

Selain itu jika Anda mengalami masalah jalur panjang, cara yang paling efektif dan mudah adalah meluangkan waktu mengubah struktur file/folder Anda.

Misalnya: daripada \xx\Build\Drop\ProjectName, cukup gunakan \xx\Build\Drop (atau \xx\Builds) karena nama proyek juga ada dalam nama build.

person PatrickLu-MSFT    schedule 02.03.2017
comment
Saya menggunakan layanan build berikutnya (vnext). Saya ingin beralih dari: _work\5\a\DeployPackages\Archive\Content\d_C\tfsbuild_work\5\s\Main\AdService\obj\DEVE\Package\PackageTmp\ ke ini: _work\5\a\DeployPackages\ AdService[itu nama proyek]\file yang diperlukan ditempatkan di sini jika saya mengubah argumen msbuild PackageAsSingleFile=true. Ini akan menghasilkan file zip alih-alih meletakkan file dalam struktur folder tetapi struktur folder di zip sama dengan yang lain. - person Captain Kirk; 02.03.2017
comment
Menyarankan Anda untuk menggunakan /p:PackageAsSingleFile=true. Beberapa blog untuk referensi Anda Cara mengemas proyek web untuk penerapan dari baris perintah . Mungkin ada yang salah dengan build.stagingDirectory Anda. Periksa kembali ini, apakah build.stagingDirectory Anda terlalu panjang dan terlalu membengkak. Lokasi paket struktur folder harus sama. - person PatrickLu-MSFT; 03.03.2017
comment
@CaptainKirk Selain itu Anda juga dapat mencoba mengubah /p:PackageLocation menjadi /p:PackageLocation="$(BuildConfiguration)seperti yang disebutkan dalam tautan ini: stackoverflow.com/questions/33904574/ - person PatrickLu-MSFT; 03.03.2017
comment
@CaptainKirk Seperti yang disarankan Eddie, Anda harus menggunakan argumen lain alih-alih $(build.stagingDirectory) di lokasi paket. - person PatrickLu-MSFT; 06.03.2017