ฉันจะตั้งค่าสคริปต์ MSBuild เพื่อใช้ชุดของไดเรกทอรีภายนอกในไฟล์ csproj ในขณะที่สร้างโซลูชันทั้งหมดได้อย่างไร

ฉันไม่แน่ใจว่าฉันจะรับสคริปต์ MSBuild เพื่อใช้เส้นทางเอาต์พุต, ค่าไดเรกทอรีเอาต์พุตจากไฟล์ CSproj ได้อย่างไร ฉันเคยเห็นตัวอย่างที่ฉันตั้งค่าเส้นทางเอาต์พุตใน MSscript แต่นั่นจะทิ้งเอาต์พุตทั้งหมดไว้ในโฟลเดอร์ขนาดใหญ่เพียงโฟลเดอร์เดียว ฉันต้องการให้แต่ละโครงการมีเส้นทางผลลัพธ์ของตนเองและ MSbuild เพื่อสร้างโซลูชันในลักษณะที่เอาต์พุตสำหรับโครงการและสร้างในไดเร็กทอรีเอาต์พุตที่เกี่ยวข้อง ขอบคุณ.


person Bladerunner    schedule 08.05.2015    source แหล่งที่มา
comment
อย่าตั้งค่า OutputPath ขณะเรียก msbuild.exe ดังนั้นควรใช้ค่าจากโปรเจ็กต์   -  person Sayed Ibrahim Hashimi    schedule 09.05.2015


คำตอบ (2)


ไม่มีวิธีที่ง่าย ทางเลือกหนึ่งคือขยาย MSBuild และให้คัดลอกเอาต์พุตจากแต่ละโครงการไปยังโฟลเดอร์ทั่วไป

หากคุณดูไฟล์ Microsoft.Common.Targets ใน c:\Windows\Microsoft.Net\Framework\v4.*\ คุณจะเห็นได้ว่าไฟล์ดังกล่าวโหลดไฟล์เป้าหมายแบบกำหนดเองทั้งที่จุดเริ่มต้นและจุดสิ้นสุดของโฟลเดอร์นั้นอย่างไร หากคุณเพิ่ม Custom.After.Microsoft.Common.Targets ลงในโฟลเดอร์ C:\Program Files (x86)\MSBuild\v4\ คุณสามารถให้โหลดไฟล์ได้โดยพูดว่า $(SolutionDir)\Solution.targets ซึ่งจะช่วยให้คุณสามารถขยายแต่ละโซลูชันได้แตกต่างกัน และคุณสามารถเพิ่มการดำเนินการแบบกำหนดเองใดๆ ที่คุณต้องการภายในทุกโซลูชันที่นำไปใช้กับทุกโครงการ ฉันใช้สิ่งนี้และมันใช้งานได้ดี

person mageos    schedule 09.05.2015

ขอบคุณสำหรับคำตอบพวกคุณ. ฉันพบวิธีเรียกใช้โซลูชันโดยไม่ต้องระบุโฟลเดอร์เอาต์พุตเฉพาะ ฉันต้องแก้ไขเส้นทางโฟลเดอร์เอาต์พุตไปที่ /bin ใน csprojs จากนั้นการรัน MSbuild ด้วยโซลูชันก็สามารถรับเส้นทางเหล่านั้นจาก csprojs และสร้างเอาต์พุตลงในโฟลเดอร์เหล่านั้น

person Bladerunner    schedule 22.05.2015