ยังได้คำตอบอีก ...
ในกรณีของฉันฉันมีโครงการ Visual Studio 2017 ที่กำหนดเป้าหมายทั้ง. Net Standard 1.3 และ. Net Framework 2.0 สิ่งนี้ถูกระบุในไฟล์. csproj ดังนี้:
<TargetFrameworks>netstandard1.3;net20</TargetFrameworks>
ฉันยังมีบรรทัดคำสั่งหลังการสร้างเหตุการณ์เช่นนี้:
copy "E:\Yacks\YacksCore\YacksCore\bin\net20\Merlinia.YacksCore.dll" "E:\Merlinia\Trunk-Debug\Shared Bin\"
กล่าวอีกนัยหนึ่งฉันพยายามคัดลอก. Net Framework .dll ที่สร้างโดยบิลด์ไปยังตำแหน่งอื่น
สิ่งนี้ล้มเหลวด้วยข้อผิดพลาดนี้เมื่อฉันทำการสร้างใหม่:
MSB3073 The command "copy "E:\Yacks\YacksCore\YacksCore\bin\net20\Merlinia.YacksCore.dll" "E:\Merlinia\Trunk-Debug\Shared Bin\"" exited with code 1.
หลังจากหงุดหงิดมากในที่สุดฉันก็พบว่าสิ่งที่เกิดขึ้นคือการสร้างใหม่ลบไฟล์เอาต์พุตทั้งหมดจากนั้นทำการสร้างสำหรับ. Net Standard 1.3 จากนั้นพยายามเรียกใช้บรรทัดคำสั่งเหตุการณ์หลังการสร้างซึ่งล้มเหลวเนื่องจากไฟล์ที่จะคัดลอก ยังไม่ได้สร้าง
ดังนั้นวิธีแก้ปัญหาคือเปลี่ยนลำดับของการสร้างเช่นสร้างสำหรับ. Net Framework 2.0 ก่อนจากนั้นสำหรับ. Net Standard 1.3
<TargetFrameworks>net20;netstandard1.3</TargetFrameworks>
ตอนนี้ใช้งานได้แล้วโดยมีข้อผิดพลาดเล็กน้อยที่บรรทัดคำสั่งหลังสร้างเหตุการณ์กำลังถูกเรียกใช้สองครั้งดังนั้นไฟล์จึงถูกคัดลอกสองครั้ง