Visual Studio build ล้มเหลว: ไม่สามารถคัดลอกไฟล์ exe จาก obj \ debug ไปยัง bin \ debug


193

ปรับปรุง: โครงการตัวอย่างการทำซ้ำข้อผิดพลาดนี้สามารถพบได้ที่นี่ที่ Microsoft Connect ฉันได้ทดสอบและตรวจสอบแล้วว่าโซลูชันที่ให้ในคำตอบที่ยอมรับด้านล่างใช้ได้กับโครงการตัวอย่างนั้น หากวิธีนี้ไม่ได้ผลสำหรับคุณคุณอาจประสบปัญหาอื่น (ซึ่งเป็นของคำถามอื่น)


นี่เป็นคำถามที่ถามมาทั้งที่นี่ใน Stack Overflow และที่อื่น ๆ แต่ไม่มีคำแนะนำใด ๆ ที่ฉันพบว่าไกลเท่านี้ช่วยฉันได้ดังนั้นฉันต้องลองถามคำถามใหม่

สถานการณ์สมมติ: ฉันมีแอปพลิเคชัน Windows Forms อย่างง่าย (C #, .NET 4.0, Visual Studio 2010) มันมีรูปแบบฐานสองสามรูปแบบที่ส่วนใหญ่สืบทอดมาจากนั้นใช้ Entity Framework (และคลาส POCO) สำหรับการเข้าถึงฐานข้อมูล ไม่มีอะไรแฟนซีไม่มีเธรดหลายอย่างหรืออะไรเลย

ปัญหา: ทุกอย่างใช้ได้ดีชั่วขณะหนึ่ง จากนั้นทั้งหมด Visual Studio ไม่สามารถสร้างเมื่อฉันกำลังจะเปิดแอปพลิเคชัน ฉันได้รับคำเตือน"ไม่สามารถลบไฟล์ '... bin \ Debug \ [ProjectName] .exe' การเข้าถึงพา ธ '... bin \ Debug \ [ProjectName] .exe' ถูกปฏิเสธ" และข้อผิดพลาด"ไม่สามารถคัดลอกไฟล์ 'obj \ x86 \ Debug \ [ProjectName] .exe' เป็น 'bin \ Debug \ [ProjectName] .exe' กระบวนการไม่สามารถเข้าถึงไฟล์ 'bin \ Debug \ [ProjectName] .exe 'เพราะกระบวนการอื่นกำลังถูกใช้อยู่ " (ฉันได้รับทั้งคำเตือนและข้อผิดพลาดเมื่อเรียกใช้ Rebuild แต่เฉพาะข้อผิดพลาดเมื่อเรียกใช้ Build - ไม่คิดว่าเกี่ยวข้องหรือไม่)

ฉันเข้าใจดีว่าสิ่งที่คำเตือนและข้อความแสดงข้อผิดพลาดบอกว่า: Visual Studio พยายามที่จะเขียนทับไฟล์ exe อย่างชัดเจนในขณะที่มันล็อคด้วยเหตุผลบางประการ อย่างไรก็ตามสิ่งนี้ไม่ได้ช่วยฉันหาวิธีแก้ปัญหา ... สิ่งเดียวที่ฉันพบว่าใช้งานได้คือปิด Visual Studio แล้วเริ่มใหม่อีกครั้ง การสร้างและการเปิดตัวใช้งานได้จนกระทั่งฉันทำการเปลี่ยนแปลงในบางรูปแบบจากนั้นฉันก็มีปัญหาเดียวกันอีกครั้งและต้องรีสตาร์ท ... ค่อนข้างน่าผิดหวัง!

ดังที่ฉันได้กล่าวไปแล้วสิ่งนี้ดูเหมือนจะเป็นปัญหาที่ทราบแล้วดังนั้นจึงมีคำแนะนำมากมาย ฉันจะทำรายการสิ่งที่ฉันได้ลองที่นี่เพื่อให้ผู้คนรู้ว่าจะข้ามไป:

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

    if exist "$(TargetPath).locked" del "$(TargetPath).locked"
       if not exist "$(TargetPath).locked" if exist "$(TargetPath)" move "$(TargetPath)" "$(TargetPath).locked"
  • การเพิ่มสิ่งต่อไปนี้เข้ากับคุณสมบัติโครงการ (ไฟล์. csproj):

    <GenerateResourceNeverLockTypeAssemblies>true</GenerateResourceNeverLockTypeAssemblies>

อย่างไรก็ตามไม่มีพวกเขาทำงานให้ฉันดังนั้นคุณอาจจะเห็นว่าทำไมฉันถึงเริ่มรู้สึกท้อแท้ ฉันไม่รู้ว่าจะมองที่อื่นดังนั้นฉันหวังว่าจะมีใครบางคนให้ฉัน! นี่เป็นข้อบกพร่องใน VS หรือไม่และถ้าเป็นเช่นนั้นจะมีโปรแกรมแก้ไขหรือไม่ หรือฉันทำสิ่งผิดปกติฉันมีการอ้างอิงแบบวงกลมหรือคล้ายกันและหากเป็นเช่นนั้นฉันจะทราบได้อย่างไร

ข้อเสนอแนะใด ๆ ที่ชื่นชมอย่างมาก :)

อัปเดต:ตามที่กล่าวไว้ในความคิดเห็นด้านล่างฉันได้ตรวจสอบโดยใช้ Process Explorer ว่าจริงๆแล้วเป็น Visual Studio ที่ล็อคไฟล์


4
คุณตรวจสอบว่าใบสมัครของคุณปิดอย่างถูกต้องหรือไม่? ตัวจัดการงานแสดงให้คุณ [ProjectName] .exe ในรายการกระบวนการหรือไม่
miensol

2
ฉันเคยทำสิ่งนี้มาก่อนและฉันก็เปลี่ยนชื่อไฟล์เป็น. old และเรียกใช้งาน build อีกครั้ง ไม่ใช่การแก้ไขที่ฉันรู้ แต่มันใช้งานได้สำหรับฉัน
codingbadger

@ miensol: ใช่ดูเหมือนว่าจะปิดอย่างถูกต้อง ฉันได้รับ "โปรแกรม '[1848] [ProjectName] .vshost.exe: Managed (v4.0.30319)' ออกจากด้วยรหัส 0 (0x0)" @Barry: การเปลี่ยนชื่อไฟล์ exe ใน bin \ Debug ใช้งานได้ แต่อย่างที่คุณบอกว่ามันไม่ได้เป็นทางออกจริงๆและน่ารำคาญมากที่ต้องทำทุกครั้ง ดีกว่ารีสตาร์ท Visual Studio เล็กน้อย ...
Julian

2
@Naliluj: ฉันมาข้ามนี้บทความจากฟอรั่มของ Microsoft ที่อธิบายว่ามันอาจจะเกี่ยวข้องกับแฟ้มทรัพยากร หากคุณใช้ไฟล์ resx สิ่งนี้อาจเป็นคำใบ้
Patrick

1
สำหรับลูกหลานฉันมีปัญหานี้และได้รับการแก้ไขโดยการเพิ่ม <GenerateResourceNeverLockTypeAssemblies> จริง </GenerateResourceNeverLockTypeAssemblies> องค์ประกอบลงในไฟล์ csproj ของฉัน
ThisIsTheDave

คำตอบ:


117

นี่จะฟังดูงี่เง่า แต่ฉันลองใช้วิธีแก้ปัญหาทั้งหมดนี้แล้วใช้ VS2010 บน Windows 7 ไม่มีวิธีใดที่ทำงานยกเว้นการเปลี่ยนชื่อและการสร้างซึ่งน่าเบื่อมากที่จะพูดน้อยที่สุด ในที่สุดฉันติดตามผู้กระทำผิดและฉันพบว่ามันยากที่จะเชื่อ แต่ฉันใช้รหัสต่อไปนี้ใน AssemblyInfo.cs ...

[assembly: AssemblyVersion("2.0.*")]

นี่เป็นเรื่องธรรมดา แต่ด้วยเหตุผลบางอย่างการเปลี่ยนเวอร์ชันเป็น 2.0.0.0 ทำให้สิ่งต่าง ๆ ทำงานได้อีกครั้ง ฉันไม่รู้ว่ามันเป็นของ Windows 7 หรือไม่ (ฉันเพิ่งใช้ไป 3-4 สัปดาห์) หรือเป็นแบบสุ่มหรืออะไรก็ได้ แต่มันแก้ไขสำหรับฉัน ฉันเดาว่า VS กำลังจัดการกับแต่ละไฟล์ที่สร้างขึ้นดังนั้นมันจะรู้วิธีเพิ่มสิ่งต่าง ๆ ได้อย่างไร ฉันไม่แน่ใจและไม่เคยเห็นสิ่งนี้เกิดขึ้นมาก่อน แต่ถ้ามีคนอื่นดึงผมออกมาลองดูด้วย


12
นั่นเป็นความคิดบ้าคลั่งอย่างหนึ่งที่ฉันจะให้คุณ;) มีอะไรที่บ้ากว่านี้คือมันใช้งานได้จริง! ฉันได้ทำการทดสอบหลายครั้งในตอนนี้และฉันสามารถยืนยันได้ว่าเมื่อใช้แอสเซมบลีเวอร์ชันเช่น "2.0. *" ฉันได้รับข้อผิดพลาด แต่เมื่อฉันใช้ "2.0.0" มันทำงานได้ดีมาก! ฉันขอให้ผู้คนมากขึ้นเพื่อทดสอบและถ้าคุณคิดว่ามันใช้งานได้โปรดโหวตคำตอบนี้เพราะนี่คือสิ่งที่ต้องรู้! ไมโครซอฟท์หวังหยิบขึ้นมาบนนี้ ... ขอบคุณ drharris :)
จูเลียน

2
สิ่งนี้ไม่ทำงานสำหรับฉันเมื่อฉันรีสตาร์ท VS ฉันไม่ได้รับข้อผิดพลาดในบางครั้ง ทุกครั้งที่ฉันได้รับข้อผิดพลาดนี้ฉันต้องรีสตาร์ท VS 2010
Sharique

6
fyi ... สิ่งนี้ไม่ได้ผลสำหรับฉัน การตั้งค่าของฉันเป็น: [ชุดประกอบ: AssemblyVersion ("1.0.0.0")] [ชุดประกอบ: AssemblyFileVersion ("1.0.0.0")]
tbone

4
หากคุณมี [assembly: AssemblyVersion ("1.0.0.0")] ให้แทนที่ด้วย [assembly: AssemblyVersion ("2.0.0.0")] (เช่น '2' แทน '1') มันใช้งานได้สำหรับฉัน แม้ว่าฉันจะไม่ได้ตรวจสอบ แต่เป็นไปได้ว่าเพียงแค่เปลี่ยนรุ่นเป็นสิ่งอื่นนอกเหนือจากที่คุณมีในขณะนี้สามารถแก้ไขปัญหานี้ได้
Frederick The Fool

1
ทำงานสำหรับ dll ด้วย! VS บอกว่าไม่สามารถคัดลอก dll และหลังจากเปลี่ยนทั้ง [assembly: AssemblyVersion] และ [assembly: AssemblyFileVersion ()] จาก 1.0. * เป็น 2.0.0.0 ก็ใช้งานได้
อาริโซน่า

14

เนื่องจากฉันไม่ได้รับข้อเสนอแนะเพิ่มเติมเกี่ยวกับปัญหานี้ฉันคิดว่าฉันจะแบ่งปันสิ่งที่ท้ายที่สุดคือการแก้ปัญหาของฉัน:

ตามที่ Barry แนะนำในการแสดงความคิดเห็นในโพสต์ต้นฉบับให้เปลี่ยนชื่อ'... bin \ Debug [ProjectName] .exe'ด้วยตนเองเป็นอย่างอื่น (เช่น'[ProjectName] 1.exe' ) คือการทำงานหนึ่งรอบ (I ') อย่างไรก็ตามฉันไม่ได้รับอนุญาตให้ลบไฟล์ด้วยตัวเองและฉันต้องบอกว่าฉันพบว่าบิตแปลก ๆ อย่างหนึ่งที่จะเชื่อว่าการล็อกเดียวกันเพื่อป้องกันการลบจะป้องกันการเปลี่ยนชื่อ ... ) มันไม่ใช่ทางออกที่ดี แต่ก็มีความรวดเร็วพอสมควร (อย่างน้อยก็หลังจากที่คุณทำไปแล้วสองสามครั้งมันก็เกือบจะกลายเป็นกิจวัตรประจำวัน) และอย่างน้อยก็เร็วกว่ารีสตาร์ท Visual Studio ซึ่งเป็นสิ่งที่ฉันทำในตอนแรก

ในกรณีที่มีคนสงสัยฉันสามารถเพิ่มได้ว่าฉันเห็นปัญหานี้แบบกึ่งสุ่ม มันมักจะเกิดขึ้นหลังจากที่ฉันทำการเปลี่ยนแปลงบางอย่างในโหมดการออกแบบของแบบฟอร์ม (แต่ไม่เสมอไป) มันมักจะไม่เกิดขึ้นถ้าฉันเปลี่ยนรหัสทางธุรกิจหรือรหัสที่เกี่ยวข้องที่ไม่ใช่แบบภาพ (แต่บางครั้งมันก็เป็น ... ) น่าผิดหวังจริง ๆ แต่อย่างน้อยฉันก็มีแฮ็คที่เหมาะกับฉัน - หวังว่าโครงการต่อไปของฉันจะไม่ประสบปัญหานี้เช่นกัน ...

@Barry: หากคุณต้องการได้รับเครดิตสำหรับความคิดเห็นของคุณโปรดโพสต์เป็นคำตอบและฉันจะให้แน่ใจว่าจะยอมรับมัน :)


ฉันโหวตสิ่งนี้เนื่องจากสิ่งที่ฉันเคยทำในอดีต ฉันเห็นด้วยมันเป็นวิธีที่สกปรก แต่ใช้งานได้ VS มีปัญหานี้ซ้ำสองสามครั้ง ฉันกำลังโหลดโครงการของฉันจากเครือข่าย dir เช่นกัน มันได้รับความไว้วางใจอย่างเต็มที่ แต่ก็ไม่สำคัญ มันไม่สำคัญว่าจะเป็นการแมปไดรฟ์หรือ UNC ใช่ MS ต้องการแก้ไขอันนี้จริงๆ พวกเขามีข้อบกพร่องที่ปิดเพราะมันบอกว่าไม่สามารถทำซ้ำได้ กะพร่องกะแพร่ง!
Josh Robinson

14

ฉันพบวิธีแก้ไขปัญหาที่ง่ายเพียงปิดใช้งาน Windows Indexing Services สำหรับโฟลเดอร์โครงการและโฟลเดอร์ย่อย


2
สิ่งนี้ใช้ได้สำหรับฉันเช่นกัน ฉันไม่แน่ใจว่าฉันเข้าใจว่าทำไมเนื่องจาก process explorer พบว่า devenv.exe ถือด้ามจับล็อคอยู่ อย่างไรก็ตามการปิดการจัดทำดัชนีแก้ไขปัญหา
Fopedush

1
@Frushush ฉันพบปัญหานี้ด้วยวิธีแก้ไขปัญหาเดียวกันแม้ว่าฉันจะไม่เห็นคำถามนี้ในเวลาเดียวกัน คำตอบนี้มีคำอธิบายว่าทำไมมันถึงช่วยได้บ้าง
Darren Hale

1
อันนี้ทำเพื่อฉัน
Martin Capodici

12

ฉันมีปัญหาเดียวกัน (MSB3021) กับโครงการ WPF ใน VS2008 (บน Windows 7 x32) ปัญหาปรากฏขึ้นหากฉันพยายามเรียกใช้แอปพลิเคชันซ้ำเร็วเกินไปหลังจากเรียกใช้ก่อนหน้านี้ หลังจากเปิดไฟล์ exe ไม่กี่นาทีด้วยตัวเองและฉันสามารถเรียกใช้แอปพลิเคชันอีกครั้งได้ แต่การหยุดอยู่กับฉันนาน ๆ ทำให้ฉันโกรธ สิ่งเดียวที่ช่วยฉันได้จริงๆคือการใช้ VS ในฐานะผู้ดูแลระบบ


1
ฉันพบรายงานข้อผิดพลาดเมื่อเร็ว ๆ นี้เกี่ยวกับปัญหาที่แน่นอนนี้: connect.microsoft.com/VisualStudio/feedback/details/558848/ ......รายงานข้อผิดพลาดนั้นให้ตัวอย่างโครงการที่สามารถทำซ้ำข้อบกพร่องได้ วิธีการแก้ปัญหาที่แนะนำโดย drharris ก็ใช้ได้เช่นกัน (ดูวิธีแก้ไขปัญหาที่โพสต์ในลิงค์ด้านบนสำหรับวิธีแก้ปัญหาแบบทีละขั้นตอนในโครงการตัวอย่าง)
Julian

นี่เป็นทางออกเดียวที่ใช้ได้สำหรับฉันเช่นกัน ขอบคุณ @Nailuj!
อนุรักษ์นิยม

นี่เป็นวิธีที่ง่ายกว่าการรีสตาร์ท VS
Elvedin Hamzagic

1
"ไม่พบหน้าเว็บ" สำหรับปัญหาการเชื่อมต่อพวกเขาเพิ่งลบออกจากความอับอาย = S เคยมีวิธีแก้ไขปัญหา / วิธีแก้ปัญหาที่โพสต์ไว้หรือไม่
Coops

9

เมื่อฉันเจอปัญหานี้จะทำอย่างไรกับความจริงที่ว่าโครงการที่ฉันพยายามจะสร้างถูกตั้งค่าเป็นโครงการเริ่มต้นในการแก้ปัญหาทำให้. exe ในโฟลเดอร์ obj ถูกล็อค (มันจะปรากฏในตัวจัดการงานของคุณด้วย) คลิกขวาที่โครงการอื่นในโซลูชันของคุณแล้วเลือกกำหนดโครงการเริ่มต้น นี่จะเป็นการปลดล็อคลบมันออกจากตัวจัดการงานและควรให้คุณสร้าง


1
สิ่งนี้ใช้ได้ทุกครั้งสำหรับฉัน ดูเหมือนว่าจะเกี่ยวข้องกับกระบวนการ vshost ที่สร้างขึ้นและเริ่มให้บริการ
jaywayco

8

ฉันลองคำแนะนำอื่น ๆ ทั้งหมดในคำตอบที่นี่ไม่มีข้อใดทำงานได้ ในที่สุดฉันใช้การตรวจสอบกระบวนการเพื่อค้นหาว่า. exe ของฉันที่ VS2010 ไม่สามารถสร้างได้ถูกล็อคโดยกระบวนการของระบบ (PID = 4) ค้นหาดังนั้นสำหรับสถานการณ์ที่เกี่ยวข้องกับเรื่องนี้ให้ผลนี้คำตอบ

สรุป: หากคุณปิดใช้งานบริการประสบการณ์ใช้งานแอปพลิเคชัน (เช่นเดียวกับฉัน) ให้เปิดใช้งานและเริ่มใหม่อีกครั้ง การทำให้รุนแรงขึ้นสองปีสิ้นสุดลง


+1 ก่อนหน้านี้ฉันเคยลองทุกอย่าง (1. ตัวจัดการงาน 2. ตัวสำรวจกระบวนการคือตัวจัดการที่ปิดไม่ให้ฉันทำ 3. ปิดใช้งานโปรแกรมป้องกันไวรัส 4. ยกเว้น APP_DATA / Local / Microsoft / Visual Studio จากบริการสร้างดัชนีของ Windows ) แต่คำแนะนำนี้อีกครั้ง: บริการ "ประสบการณ์ใช้งานแอปพลิเคชัน" เป็นบริการเดียวที่ช่วยให้ฉันต่อสู้กับกำแพง ฉันเปิดใช้งานมันและปัญหาก็หายไป สิ่งที่ตลกคือหลังจากที่ฉันปิดการใช้งานอีกครั้งทุกอย่างก็ยังคงตกลง ฉันไม่มีปัญหาอีกแล้ว แต่แน่นอนว่านี่เป็นเพียงสิ่งเดียวที่ทำให้ฉัน
Tomás

ทำงานให้ฉันด้วย !!! สิ่งเดียวที่ทำงานได้ก็คือลบโฟลเดอร์binก่อนที่จะเรียกใช้แอปพลิเคชัน แต่คุณต้องลบเสมอก่อนที่จะทำงานน่ารำคาญมาก
E_Blue

6

ฉันมีปัญหาคล้ายกันมากกับสิ่งนี้และพบว่าเหตุผลในกรณีของฉันคือฉันได้สร้างโฟลเดอร์ bin \ debug ให้เป็นโฟลเดอร์แชร์ภายใต้ VMware และ VMware ทั้ง Explorer ภายใต้แขกของ VM หรืออาจเป็นโปรแกรมป้องกันไวรัส โปรแกรมภายใต้แขก (แม้ว่าฉันไม่คิดว่าฉันมีหนึ่งติดตั้ง) ก็ถือหมายเลขอ้างอิงไปยังไฟล์


ฉันติดตั้ง Avast และเช้านี้ฉันได้รับข้อผิดพลาด MVC แบบสุ่มซึ่งบอกว่า dll ของฉันมีไวรัสอยู่ หลังจากข้อผิดพลาดฉันไม่สามารถสร้างโครงการ MVC ของฉันได้อีก ฉันเพิ่มข้อยกเว้นไปยัง Avast File System Shield และทุกอย่างทำงานได้อีกครั้ง
ฝุ่นละออง


4

ฉันขอแนะนำให้ดาวน์โหลดProcess Explorerเพื่อค้นหาว่ากระบวนการใดที่ล็อกไฟล์ สามารถพบได้ที่:

http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx


ฉันเห็นด้วย - ไม่จำเป็นว่า VS จะล็อคไฟล์ ตัวตรวจจับไวรัสสามารถทำสิ่งนี้ได้ ลองปิดตัวตรวจสอบไวรัสเพื่อดูว่ามีประโยชน์หรือไม่
Polyfun

ขออภัยฉันลืมที่จะพูดถึงว่าฉันได้ทำไปแล้ว และมันบอกว่านั่นคือ Visual Studio (devenv.exe) ที่มีการล็อคไฟล์ ([ProjectName] .vshost.exe) นั่นก็ไม่ได้ช่วยอะไรฉันมากนัก
Julian

@ShellShock: การปิดใช้งานโปรแกรมป้องกันไวรัสของฉัน (Avast) ไม่ช่วยอะไรเช่นกัน
Julian

สำหรับฉันโดยใช้ Sysinternals ProcessExplorer ฉันสามารถดูหมายเลขอ้างอิงของไฟล์นั้นได้ แต่เมื่อฉันคลิกที่มันจะไม่มีแอปพลิเคชันแสดงที่ถือมันและเมื่อฉันพยายามปิดหมายเลขอ้างอิงฉันได้รับ "กระบวนการเปิดข้อผิดพลาด: หมายเลขอ้างอิงคือ ที่ไม่ถูกต้อง." ข้อผิดพลาดใน ProcessExplorer ยังล็อคยังคงมีอยู่
tbone

4

การใช้ Visual Studio ฉันไม่สามารถคิดโครงการง่ายๆเพื่อทำซ้ำข้อผิดพลาด

ทางออกของฉันคือการปิดการใช้งานกระบวนการ Visual Studio Hosting

สำหรับผู้ที่สนใจฉันได้แนบหมายเลขอ้างอิงการติดตามสำหรับหมายเลขอ้างอิงที่ละเมิด:

0:044> !htrace 242C
--------------------------------------
Handle = 0x000000000000242c - OPEN
Thread ID = 0x0000000000001cd0, Process ID = 0x0000000000001a5c

0x000000007722040a: ntdll!ZwCreateFile+0x000000000000000a
0x0000000074b4bfe3: wow64!whNtCreateFile+0x000000000000010f
0x0000000074b3cf87: wow64!Wow64SystemServiceEx+0x00000000000000d7
0x0000000074ac276d: wow64cpu!TurboDispatchJumpAddressEnd+0x0000000000000024
0x0000000074b3d07e: wow64!RunCpuSimulation+0x000000000000000a
0x0000000074b3c549: wow64!Wow64LdrpInitialize+0x0000000000000429
0x00000000772184c8: ntdll!LdrpInitializeProcess+0x00000000000017e2
0x0000000077217623: ntdll! ?? ::FNODOBFM::`string'+0x000000000002bea0
0x000000007720308e: ntdll!LdrInitializeThunk+0x000000000000000e
0x00000000773d0066: ntdll_773b0000!NtCreateFile+0x0000000000000012
0x000000007541b616: KERNELBASE!CreateFileW+0x000000000000035e
0x0000000075b42345: KERNEL32!CreateFileWImplementation+0x0000000000000069
0x000000006a071b47: mscorwks_ntdef!StgIO::Open+0x000000000000028c
--------------------------------------
Handle = 0x000000000000242c - CLOSE
Thread ID = 0x0000000000000cd4, Process ID = 0x0000000000001a5c

0x000000007721ffaa: ntdll!ZwClose+0x000000000000000a
0x0000000074b3f2cd: wow64!whNtClose+0x0000000000000011
0x0000000074b3cf87: wow64!Wow64SystemServiceEx+0x00000000000000d7
0x0000000074ac276d: wow64cpu!TurboDispatchJumpAddressEnd+0x0000000000000024
0x0000000074b3d07e: wow64!RunCpuSimulation+0x000000000000000a
0x0000000074b3c549: wow64!Wow64LdrpInitialize+0x0000000000000429
0x000000007724d177: ntdll! ?? ::FNODOBFM::`string'+0x000000000002bfe4
0x000000007720308e: ntdll!LdrInitializeThunk+0x000000000000000e
0x00000000773cf992: ntdll_773b0000!ZwClose+0x0000000000000012
0x0000000075b42642: KERNEL32!BaseRegCloseKeyInternal+0x0000000000000041
0x0000000075b425bc: KERNEL32!RegCloseKey+0x000000000000007d
*** WARNING: Unable to verify checksum for mscorlib.ni.dll
0x0000000068f13ca3: mscorlib_ni+0x0000000000233ca3
0x0000000069bc21db: mscorwks_ntdef!CallDescrWorker+0x0000000000000033
0x0000000069be4a2a: mscorwks_ntdef!CallDescrWorkerWithHandler+0x000000000000008e
--------------------------------------
Handle = 0x000000000000242c - OPEN
Thread ID = 0x00000000000006cc, Process ID = 0x0000000000001a5c

0x0000000077220e0a: ntdll!NtOpenKeyEx+0x000000000000000a
0x0000000074b5d1c9: wow64!Wow64NtOpenKey+0x0000000000000091
0x0000000074b5313b: wow64!whNtOpenKeyEx+0x0000000000000073
0x0000000074b3cf87: wow64!Wow64SystemServiceEx+0x00000000000000d7
0x0000000074ac276d: wow64cpu!TurboDispatchJumpAddressEnd+0x0000000000000024
0x0000000074b3d07e: wow64!RunCpuSimulation+0x000000000000000a
0x0000000074b3c549: wow64!Wow64LdrpInitialize+0x0000000000000429
0x000000007724d177: ntdll! ?? ::FNODOBFM::`string'+0x000000000002bfe4
0x000000007720308e: ntdll!LdrInitializeThunk+0x000000000000000e
0x00000000773d0fca: ntdll_773b0000!NtOpenKeyEx+0x0000000000000012
0x0000000075b42721: KERNEL32!LocalBaseRegOpenKey+0x000000000000010c
0x0000000075b428c9: KERNEL32!RegOpenKeyExInternalW+0x0000000000000130
0x0000000075b427b5: KERNEL32!RegOpenKeyExW+0x0000000000000021
--------------------------------------
Handle = 0x000000000000242c - CLOSE
Thread ID = 0x0000000000000cd4, Process ID = 0x0000000000001a5c

0x000000007721ffaa: ntdll!ZwClose+0x000000000000000a
0x0000000074b3f2cd: wow64!whNtClose+0x0000000000000011
0x0000000074b3cf87: wow64!Wow64SystemServiceEx+0x00000000000000d7
0x0000000074ac276d: wow64cpu!TurboDispatchJumpAddressEnd+0x0000000000000024
0x0000000074b3d07e: wow64!RunCpuSimulation+0x000000000000000a
0x0000000074b3c549: wow64!Wow64LdrpInitialize+0x0000000000000429
0x000000007724d177: ntdll! ?? ::FNODOBFM::`string'+0x000000000002bfe4
0x000000007720308e: ntdll!LdrInitializeThunk+0x000000000000000e
0x00000000773cf992: ntdll_773b0000!ZwClose+0x0000000000000012
0x0000000075b42642: KERNEL32!BaseRegCloseKeyInternal+0x0000000000000041
0x0000000075b425bc: KERNEL32!RegCloseKey+0x000000000000007d
0x0000000068f13ca3: mscorlib_ni+0x0000000000233ca3
0x0000000069bc21db: mscorwks_ntdef!CallDescrWorker+0x0000000000000033
0x0000000069be4a2a: mscorwks_ntdef!CallDescrWorkerWithHandler+0x000000000000008e
--------------------------------------
Handle = 0x000000000000242c - OPEN
Thread ID = 0x0000000000001cd0, Process ID = 0x0000000000001a5c

0x0000000077220e0a: ntdll!NtOpenKeyEx+0x000000000000000a
0x0000000074b5d1c9: wow64!Wow64NtOpenKey+0x0000000000000091
0x0000000074b5313b: wow64!whNtOpenKeyEx+0x0000000000000073
0x0000000074b3cf87: wow64!Wow64SystemServiceEx+0x00000000000000d7
0x0000000074ac276d: wow64cpu!TurboDispatchJumpAddressEnd+0x0000000000000024
0x0000000074b3d07e: wow64!RunCpuSimulation+0x000000000000000a
0x0000000074b3c549: wow64!Wow64LdrpInitialize+0x0000000000000429
0x00000000772184c8: ntdll!LdrpInitializeProcess+0x00000000000017e2
0x0000000077217623: ntdll! ?? ::FNODOBFM::`string'+0x000000000002bea0
0x000000007720308e: ntdll!LdrInitializeThunk+0x000000000000000e
0x00000000773d0fca: ntdll_773b0000!NtOpenKeyEx+0x0000000000000012
0x0000000075b42721: KERNEL32!LocalBaseRegOpenKey+0x000000000000010c
0x0000000075b428c9: KERNEL32!RegOpenKeyExInternalW+0x0000000000000130
--------------------------------------
Handle = 0x000000000000242c - CLOSE
Thread ID = 0x0000000000000cd4, Process ID = 0x0000000000001a5c

0x000000007721ffaa: ntdll!ZwClose+0x000000000000000a
0x0000000074b3f2cd: wow64!whNtClose+0x0000000000000011
0x0000000074b3cf87: wow64!Wow64SystemServiceEx+0x00000000000000d7
0x0000000074ac276d: wow64cpu!TurboDispatchJumpAddressEnd+0x0000000000000024
0x0000000074b3d07e: wow64!RunCpuSimulation+0x000000000000000a
0x0000000074b3c549: wow64!Wow64LdrpInitialize+0x0000000000000429
0x000000007724d177: ntdll! ?? ::FNODOBFM::`string'+0x000000000002bfe4
0x000000007720308e: ntdll!LdrInitializeThunk+0x000000000000000e
0x00000000773cf992: ntdll_773b0000!ZwClose+0x0000000000000012
0x0000000075b42642: KERNEL32!BaseRegCloseKeyInternal+0x0000000000000041
0x0000000075b425bc: KERNEL32!RegCloseKey+0x000000000000007d
0x0000000068f13ca3: mscorlib_ni+0x0000000000233ca3
0x0000000069bc21db: mscorwks_ntdef!CallDescrWorker+0x0000000000000033
0x0000000069be4a2a: mscorwks_ntdef!CallDescrWorkerWithHandler+0x000000000000008e
--------------------------------------
Handle = 0x000000000000242c - OPEN
Thread ID = 0x0000000000001cd0, Process ID = 0x0000000000001a5c

0x0000000077220e0a: ntdll!NtOpenKeyEx+0x000000000000000a
0x0000000074b5d1c9: wow64!Wow64NtOpenKey+0x0000000000000091
0x0000000074b5313b: wow64!whNtOpenKeyEx+0x0000000000000073
0x0000000074b3cf87: wow64!Wow64SystemServiceEx+0x00000000000000d7
0x0000000074ac276d: wow64cpu!TurboDispatchJumpAddressEnd+0x0000000000000024
0x0000000074b3d07e: wow64!RunCpuSimulation+0x000000000000000a
0x0000000074b3c549: wow64!Wow64LdrpInitialize+0x0000000000000429
0x00000000772184c8: ntdll!LdrpInitializeProcess+0x00000000000017e2
0x0000000077217623: ntdll! ?? ::FNODOBFM::`string'+0x000000000002bea0
0x000000007720308e: ntdll!LdrInitializeThunk+0x000000000000000e
0x00000000773d0fca: ntdll_773b0000!NtOpenKeyEx+0x0000000000000012
0x0000000075b42721: KERNEL32!LocalBaseRegOpenKey+0x000000000000010c
0x0000000075b428c9: KERNEL32!RegOpenKeyExInternalW+0x0000000000000130

--------------------------------------
Parsed 0x358E stack traces.
Dumped 0x7 stack traces.
0:044> !handle 242c ff
Handle 242c
  Type          File
  Attributes    0
  GrantedAccess 0x120089:
         ReadControl,Synch
         Read/List,ReadEA,ReadAttr
  HandleCount   2
  PointerCount  3
  No Object Specific Information available

หากคุณเห็นที่ด้านบนสุดของคำถามมีลิงก์ไปยัง Microsoft Connect พร้อมรายงานข้อผิดพลาดและโครงการตัวอย่างที่ทำซ้ำข้อผิดพลาด: connect.microsoft.com/VisualStudio/feedback/details/558848/…
Julian

การปิดใช้งานกระบวนการโฮสต์ใช้งานได้สำหรับฉัน มันยังคงทำงานหลังจากเปิดใช้งานอีกครั้งเช่นกัน ฉันใช้เวลา 4 ชั่วโมงในการพยายามแก้ไขปัญหานี้โดยลองใช้วิธีการแก้ปัญหาหลายร้อยรายการ นี่เป็นสิ่งเดียวที่ดูเหมือนจะทำงานได้จากระยะไกล
Drew Chapin

4

หากปัญหาของคุณไม่ได้รับการแก้ไขยัง:

ข้อผิดพลาดของ Visual Studio คือ:

"กระบวนการไม่สามารถเข้าถึงไฟล์ 'bin \ Debug ** app.exe **' เพราะกระบวนการอื่นกำลังถูกใช้งาน"

ดังนั้นไปที่ตัวจัดการงานของ windows (Ctrl + Shift + Esc) ค้นหาชื่อแอปพลิเคชันของคุณและบังคับให้ปิดโดย Endprocces


3

นี่คือความเป็นไปได้อื่น:

หลังจากได้รับข้อผิดพลาดนี้ใน vs2012 / win7 ฉันไปและพยายามลบไฟล์ในไดเรกทอรี bin และ explorer ระบุว่าไฟล์นั้นถูกใช้งานโดย XAML UI Designer

ฉันปิดแท็บทั้งหมดที่ฉันเปิดใน VS ปิด VS แล้วให้แน่ใจว่าได้ฆ่ากระบวนการ MSBuild ทั้งหมดใน taskmanager ในที่สุดหลังจากรีสตาร์ท VS ฉันก็สามารถสร้างโซลูชันได้


และสาเหตุอื่นที่เป็นไปได้:

ฉันได้สังเกตเห็นสาเหตุที่เป็นไปได้อีกประการสำหรับปัญหานี้ หลังจากทำการปรับเปลี่ยนรหัสบางอย่างย้ายโครงการเข้าและออกจากโซลูชันการอ้างอิงโครงการของฉันไม่ได้อ้างอิงโครงการในโซลูชันอีกต่อไปตามที่คาดไว้

Visual Studio นี้เข้าใจผิดที่จะคิดว่ามันสามารถสร้างบางโครงการพร้อมกันดังนั้นการสร้างล็อคไฟล์

แก้ไข: ฉันเคยเกิดเหตุการณ์นี้ขึ้นในบางครั้งแม้เมื่อเร็ว ๆ นี้ด้วย VS2012 และจะแก้ไขได้เมื่อฉันตั้งค่าคำสั่งการสร้างเพื่อการอ้างอิงที่ถูกต้องฆ่ากระบวนการ msbuild ใด ๆ ที่ VS ยังคงทำงานอยู่จากนั้นรีสตาร์ท VS ฉันฆ่ากระบวนการ msbuild เพื่อให้แน่ใจ แต่การปิด VS ควรฆ่าพวกเขาด้วย

สิ่งที่ฉันมักจะทำเพื่อทำให้สิ่งนี้เป็น refactor โครงการที่ต้องอาศัยโครงการอื่นภายในโซลูชันที่ไม่ได้อ้างอิงถึงงานสร้างครั้งล่าสุด บางครั้งสิ่งนี้ดูเหมือนว่าจะสับสน VS และไม่ได้อัปเดตคำสั่งการสร้าง

ในการตรวจสอบคำสั่ง build: คลิกขวาที่ Solution ใน Solution Explorer และเลือก "Project Build Order ... " และตรวจสอบว่ามีการบันทึกการพึ่งพาอย่างเหมาะสมสำหรับแต่ละโครงการ


เราเพิ่งประสบกับสิ่งนี้ในโครงการ WinPhone 8 สาเหตุคือการใช้ประเภททูเปิล การลบรหัสที่ใช้ Tuple ปัญหาได้หายไป เพิ่มรหัสกลับปัญหาที่ส่งคืน
เชมัส

ฉันมีปัญหาเดียวกันกับ VS2012 การปิด VS ไม่ได้ทำเคล็ดลับ - ต้องฆ่างาน msbuild.exe ทั้งหมดด้วยตนเอง
มอด

ฉันใช้ VS 2013 และฉันก็สามารถฆ่ากระบวนการ "XDesProc.exe * 32" (Microsoft Visual Studio XAML UI Designer) ในตัวจัดการงานก่อนการสร้างแต่ละครั้งและนั่นก็เป็นการหลอกลวง ไม่จำเป็นต้องรีสตาร์ท VS เนื่องจากตัวออกแบบ XAML UI โหลดซ้ำทุกครั้งที่คุณเปิดไฟล์ * .xaml ในมุมมองออกแบบ
Tim Sexton


3

ปิดการใช้งานโปรแกรมป้องกันไวรัสและลอง ฉันกำลังเผชิญกับปัญหานั้น ... แต่ในกรณีที่โปรแกรมป้องกันไวรัสของฉันถูกบล็อกแอปพลิเคชันของฉันเมื่อฉันปิดการใช้งานโปรแกรมป้องกันไวรัสที่แก้ไขแล้ว


3

ฉันประสบข้อผิดพลาดเดียวกัน

ฉันแก้ไขปัญหาโดยการลบเนื้อหาทั้งหมดของโฟลเดอร์binของโครงการ / ไลบรารีที่ขึ้นต่อกันทั้งหมด

ข้อผิดพลาดนี้ส่วนใหญ่เกิดขึ้นเนื่องจากการเปลี่ยนแปลงรุ่น


2

สิ่งนี้ได้ถูกยื่นหลายครั้งใน Connect ซึ่งเป็นไซต์รายงานข้อผิดพลาดของชุมชนของ Microsoft FYI ฉันเชื่อว่าข้อผิดพลาดนี้ได้ส่งผลกระทบต่อ Visual Studio ตั้งแต่ปี 2003 และได้รับการแก้ไขหลังจาก RTM ทุกครั้ง :( หนึ่งในการอ้างอิงมีดังนี้:

https://connect.microsoft.com/VisualStudio/feedback/details/568672/handles-to-project-dlls-are-not-released-when-compiling?wa=wsignin1.0


1

ทำสิ่งที่ง่ายก่อน

ตรวจสอบว่าส่วนหนึ่งของโซลูชันของคุณไม่ได้ถูกล็อคโดยกระบวนการทำงาน

ตัวอย่างเช่นฉันรัน "InstallUtil 'บนบริการ windows ของฉัน (ซึ่งปกติฉันจะทดสอบหน่วยจากคอนโซล)

สิ่งนี้ล็อค DLLs ของฉันบางรายการในโฟลเดอร์ bin ของโครงการบริการ windows เมื่อฉันสร้างใหม่ฉันได้รับการยกเว้นในปัญหานี้

ฉันหยุดบริการ windows สร้างใหม่และสำเร็จ

ตรวจสอบ Windows Task Manager สำหรับแอปพลิเคชันของคุณก่อนทำขั้นตอนล่วงหน้าในปัญหานี้

ดังนั้นเมื่อคุณได้ยินเสียงฝีเท้าให้คิดว่าม้าไม่ใช่ม้าลาย! (จากเพื่อนนักศึกษาแพทย์)


1

ฉันมีปัญหาเดียวกัน มันบอกว่าไม่สามารถคัดลอกจาก bin \ debug ไปยัง obj .....

เมื่อฉันสร้างโครงการเว็บฉันพบ dll ของฉันทั้งหมดในโฟลเดอร์ช่องเก็บและไม่อยู่ใน bin \ debug ในระหว่างการเผยแพร่ vs กำลังมองหาไฟล์ใน bin \ debug ดังนั้นฉันจึงเปิดไฟล์โครงการเว็บในโปรแกรมแก้ไขและค้นหาอินสแตนซ์ของ bin \ debug และฉันพบ dll ทั้งหมดถูกกล่าวถึงเป็น bin \ debug \ mylibrary.dll ฉันลบ \ debug ทั้งหมดออกจากเส้นทางและเผยแพร่อีกครั้ง เวลานี้ vs สามารถค้นหา dll ทั้งหมดในโฟลเดอร์ bin และเผยแพร่สำเร็จ

ฉันไม่รู้ว่าพา ธ นี้เปลี่ยนไปอย่างไรในไฟล์โครงการเว็บ

ฉันใช้เวลามากกว่า 5 ชั่วโมงในการดีบักและในที่สุดก็พบทางออกด้วยตัวเอง

นี้เป็น คำตอบที่ถูก


1

หากไม่ได้ผลดังกล่าวข้างต้นและคุณกำลังพัฒนาแอปพลิเคชันคอนโซล:

ลองพิมพ์อักขระใด ๆ ลงใน Program.cs จากนั้นลบ ฉันไม่รู้ว่าทำไมงานนี้ แต่ดูเหมือนจะแก้ไขปัญหา 'ไม่สามารถคัดลอก' ได้ทุกครั้ง


1

นี่เป็นเรื่องปกติที่เกิดจาก Avast

ฉันมักจะสามารถเรียกใช้โครงการของฉันในการเปิดตัวโดยไม่คำนึงถึง แต่เมื่อทำงานในการแก้ปัญหามันค่อนข้างล้มเหลวเป็นประจำ

ฉันเพิ่งเพิ่มการยกเว้นสำหรับโฟลเดอร์โครงการของฉันและดูเหมือนว่าปัญหาจะหายไป ฉันคิดว่านี่อาจเป็นเพราะซอฟต์แวร์ป้องกันไวรัสตัวอื่น


1

การเปลี่ยนชื่อไฟล์. exe และ. pub นั้นเหมาะสำหรับฉัน แต่น่าเบื่อจริงๆ ฉันยังประสบปัญหาที่ฉันไม่สามารถทำการแก้ไขในระหว่างเซสชันการตรวจแก้จุดบกพร่อง ในที่สุดฉันก็ไปที่หน้าการตั้งค่าความปลอดภัยขั้นสูงตาม:

https://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=EN-US&k=k%28%22VS.ERR.DEBUG_IN_ZONE_NO_HOSTPROC%3a11310%22%29;k%28TargetFrameworkMoniker-%22.NETFRAMEWORK%2cVERSION % 3dV4.0% 22% 29 & RD = true

ฉันยกเลิกการเลือกจากนั้นเลือกช่องทำเครื่องหมาย "เปิดใช้งานการตั้งค่าความปลอดภัย ClickOnce" อีกครั้ง เป็นปัญหาฟรีมาหลายวันแล้ว ....


1

สำหรับฉันนี่เกิดจากการเปิดพรอมต์คำสั่งในโฟลเดอร์เป้าหมาย ( C:\users\username\source\repos\project\project\bin\debug\app.publish)

ไม่แน่ใจว่าทำไม DEBUGGING ต้องการเข้าถึงโฟลเดอร์เผยแพร่ แต่การปิดหน้าต่างคำสั่งช่วยแก้ไขปัญหาให้ฉันได้


1

ในกรณีที่มีใครบางคนกำลังทำงานอยู่ในขณะที่พยายามดีบักการทดสอบหน่วยหรือเรียกใช้การทดสอบหน่วยฉันต้องฆ่าสองกระบวนการต่อไปนี้เพื่อที่จะปล่อยไฟล์:

กระบวนการที่จะฆ่า


0

ฉันลองวิธีแก้ไขปัญหาต่าง ๆ ที่คุณให้ไว้ แต่บางครั้งฉันก็ยังได้รับข้อผิดพลาดนี้ ฉันมั่นใจว่ากระบวนการของฉันไม่ทำงานและเมื่อฉันพยายามลบไฟล์ที่เรียกใช้งานได้ด้วย internet explorer จะถูกลบออกจากรายการไฟล์ แต่จากนั้นฉันกด F5 และ voila ไฟล์จะกลับมา มันไม่ได้ถูกลบเลย

แต่ถ้าฉันลบไฟล์ผ่าน TotalCommander ไฟล์ exe จะถูกลบจริงๆและฉันสามารถสร้างโครงการได้สำเร็จ

ฉันใช้ Windows 7 x64 และผู้บัญชาการรวม 7.56a 32 บิต



0

ฉันรู้ว่านี่เป็นคำถามที่เก่ามาก แต่เมื่อเร็ว ๆ นี้ฉันพบข้อผิดพลาด "ไม่สามารถคัดลอกจาก obj ไปยัง bin" ใน VS 2012 ทุกครั้งที่ฉันพยายามสร้างโครงการบางอย่างฉันได้รับข้อความ ทางออกเดียวคือทำความสะอาดก่อนที่จะสร้างใหม่ทุกครั้ง

หลังจากตรวจสอบมากมันกลายเป็นว่าฉันมีคำสั่ง pragma คำเตือนที่ไม่สมบูรณ์ในไฟล์ของฉันที่ไม่ได้ป้องกันการคอมไพล์ไม่สำเร็จ แต่ก็ทำให้ VS สับสนในการทำให้ไฟล์ถูกล็อค

ในกรณีของฉันฉันมีดังต่อไปนี้ที่ด้านบนของไฟล์:

#pragma warning(

แค่นั้นแหละ. ฉันเดาว่าฉันกำลังพยายามทำบางสิ่งบางอย่างในขณะที่กลับมาและได้ฟุ้งซ่านและไม่เคยเสร็จสิ้นกระบวนการ แต่คำเตือน VS เกี่ยวกับบรรทัดนั้นหายไปในการสับเปลี่ยน ในที่สุดฉันสังเกตเห็นคำเตือนลบบรรทัดและสร้างงานใหม่ทุกครั้งตั้งแต่นั้นมา


0

เมื่อฉันเผชิญกับปัญหาที่คล้ายกันสิ่งเดียวที่ดูเหมือนจะทำงานคือ:

  • คลิกขวาที่โครงการไปที่การตั้งค่าและตรวจสอบให้แน่ใจว่าทั้ง Debug และ Release สร้างเป้าหมายตามการตั้งค่าเดียวกันหรือมีการตั้งค่าในแอปพลิเคชันที่พยายามโหลดหรือบันทึก
  • การลบโฟลเดอร์ C: \ Users (YourUserAccount) \ AppData \ Local (YourAppName)
  • ตรวจสอบให้แน่ใจว่าไม่มีไฟล์ที่ฉันมีอยู่ถูกพิจารณาว่า "ถูกบล็อก" เมื่อคลิกขวาที่ไฟล์ที่รวมอยู่ในโครงการของฉันฉันรู้ว่าไอคอนหนึ่งถูกบล็อคจริงและถือว่าไม่ดีเพราะมันถูกดาวน์โหลดจากอินเทอร์เน็ต ฉันต้องคลิกปุ่มเลิกบล็อก (ตัวอย่างเช่นลองดูที่นี่: http://devierkoeden.com/Images/Articles/Dynamicweb/CustomModules/Part1/BlockedFiles.png - "ไฟล์นี้มาจากคอมพิวเตอร์เครื่องอื่นและอาจถูกบล็อกเพื่อช่วย ปกป้องคอมพิวเตอร์เครื่องนี้ ")

0

สำหรับ Windows Services ที่ใช้ WCF ฉันสิ้นสุดกระบวนการโฮสต์ WFC และใช้งานได้ ฉันเกลียดที่มันเกิดขึ้นและมันก็เกิดขึ้นแบบสุ่มในบางครั้ง


0

โซลูชันของฉันไม่มีส่วนเกี่ยวข้องกับเวอร์ชันกระบวนการที่ถูกล็อครีสตาร์ทหรือลบไฟล์

ปัญหาเกิดขึ้นเนื่องจากการสร้างล้มเหลวและไม่ให้ข้อผิดพลาดที่ถูกต้อง ปัญหาที่แท้จริงคือข้อบกพร่องในการออกแบบ:

// Either this should be declared outside the function, or..
SomeObject a = new SomeObject(); 

Task.Factory.StartNew(() =>
{
   while (true)
   {
      a.waitForSomething();
   }
});

// ...this should not be called
a.doSomething(); 

หลังจากเปลี่ยนขอบเขตของ "a" ไปเป็นฟังก์ชั่นภายนอกหรือไม่ได้ใช้ "a" หลังจากTask.Factory.StartNew();นั้นฉันก็สามารถสร้างได้อีกครั้ง

สิ่งนี้เกิดขึ้นเมื่อใช้ VS2012 Update 4 บน Windows7x64 sp1

ข้อความผิดพลาด:

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (3390,5): ข้อผิดพลาด MSB3030: ไม่สามารถคัดลอกไฟล์ "obj \ x86 \ Debug \ xxx.exe" เพราะไม่พบ .


0

ฉันพบกับ VS2013 ฉันได้รับข้อผิดพลาดนี้เป็นประจำ สิ่งที่ดูเหมือนว่าจะทำงานได้ดีพอสมควรคือการใช้ Rebuild Solution ก่อนที่จะพยายามเรียกใช้แอปพลิเคชัน ฉันพบว่าบางครั้งการใช้งาน CLEAN ก็ใช้งานได้ แต่ Rebuild Solution ดูเหมือนจะทำงานได้อย่างต่อเนื่อง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.