TFS Build Definition ใช้อาร์กิวเมนต์ msbuild สร้างไฟล์ในไดเร็กทอรีการแสดงละคร

ในคำจำกัดความของบิลด์ ฉันมีพารามิเตอร์เหล่านั้นในอาร์กิวเมนต์ msbuild: /p:DeployOnBuild=true /p:WebPublishMethod=FileSystem /p:PackageLocation=$(build.stagingDirectory)\DeployPackages\ /p:PackageAsSingleFile=false /p:SkipInvalidConfigurations =true /p:AutoParameterizationWebConfigConnectionStrings=False /p:GenerateProjectSpecificOutputFolder=true

ไฟล์ทั้งหมดที่จำเป็นจะอยู่ในโฟลเดอร์ DeployPackages แต่รายการโฟลเดอร์และโฟลเดอร์ย่อยเพื่อเข้าถึงโค้ดนั้นมีขนาดใหญ่มาก มีวิธีลดจำนวนโฟลเดอร์มั้ยคะ? _work\5\a\DeployPackages\Archive\Content\d_C\tfsbuild_work\5\s\Main\AdService\obj\DEVE\Package\PackageTmp\

และเป็นโฟลเดอร์ PackageTmp ที่มีไฟล์ที่ฉันต้องการคัดลอกไปยังเซิร์ฟเวอร์ของเรา

ขอบคุณ


person Captain Kirk    schedule 01.03.2017    source แหล่งที่มา
comment
คุณใช้บิลด์ใด ? XAML หรือ Vnext บิลด์?   -  person PatrickLu-MSFT    schedule 02.03.2017


คำตอบ (2)


คุณสามารถใช้ข้อโต้แย้งนี้:

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

อัปเดต

เพื่อลดเส้นทางและโครงสร้างของโฟลเดอร์คุณสามารถใช้อาร์กิวเมนต์อื่นแทน $(build.stagingDirectory) ในตำแหน่งแพ็คเกจ เช่น

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

or

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

นอกจากนี้ หากคุณประสบปัญหาเส้นทางยาว วิธีที่มีประสิทธิภาพและง่ายที่สุดยังคงใช้เวลาปรับแต่งโครงสร้างไฟล์/โฟลเดอร์ของคุณ

ตัวอย่าง: แทนที่จะเป็น \xx\Build\Drop\ProjectName เพียงใช้ \xx\Build\Drop (หรือ \xx\Builds) เนื่องจากชื่อโปรเจ็กต์ก็อยู่ในชื่อบิลด์ด้วย

person PatrickLu-MSFT    schedule 02.03.2017
comment
ฉันกำลังใช้บริการสร้างถัดไป (vnext) ฉันต้องการเปลี่ยนจาก: _work\5\a\DeployPackages\Archive\Content\d_C\tfsbuild_work\5\s\Main\AdService\obj\DEVE\Package\PackageTmp\ ไปเป็น: _work\5\a\DeployPackages\ AdService[it's the project name]\files required วางไว้ที่นี่หากฉันเปลี่ยนอาร์กิวเมนต์ msbuild PackageAsSingleFile=true มันจะสร้างไฟล์ zip แทนที่จะวางไฟล์ในโครงสร้างโฟลเดอร์ แต่โครงสร้างโฟลเดอร์ใน zip จะเหมือนกับที่อื่น - person Captain Kirk; 02.03.2017
comment
แนะนำให้คุณใช้ /p:PackageAsSingleFile=true บล็อกบางส่วนสำหรับการอ้างอิงของคุณ วิธีจัดแพ็คเกจโครงการเว็บสำหรับการปรับใช้จากบรรทัดคำสั่ง อาจมีบางอย่างผิดปกติกับ build.stagingDirectory ของคุณ ตรวจสอบอีกครั้งหาก build.stagingDirectory ของคุณยาวเกินไปและป่องเกินไป ตำแหน่งแพ็คเกจของโครงสร้างโฟลเดอร์จะต้องเหมือนกัน - person PatrickLu-MSFT; 03.03.2017
comment
@CaptainKirk ยิ่งไปกว่านั้นคุณสามารถลองเปลี่ยน /p:PackageLocation เป็น /p:PackageLocation="$(BuildConfiguration)like ตามที่กล่าวไว้ในลิงค์นี้: stackoverflow.com/questions/33904574/ - person PatrickLu-MSFT; 03.03.2017
comment
@CaptainKirk เช่นเดียวกับที่ Eddie แนะนำ คุณควรใช้อาร์กิวเมนต์อื่นแทน $(build.stagingDirectory) ในตำแหน่งแพ็คเกจ - person PatrickLu-MSFT; 06.03.2017