ไม่พบไฟล์ข้อมูลเมตา…ไม่พบข้อผิดพลาดขณะสร้างโครงการ


98

ทุกครั้งที่ฉันเริ่ม Visual Studio 2008 ในครั้งแรกที่ฉันพยายามเรียกใช้โครงการฉันได้รับข้อผิดพลาด CS0006 ไม่พบไฟล์ข้อมูลเมตา ... ถ้าฉันสร้างโซลูชันที่สมบูรณ์ขึ้นมาใหม่มันก็ใช้ได้

ข้อมูลบางอย่างเกี่ยวกับโซลูชัน:

  • ฉันกำลังสร้างในโหมดดีบักและ Visual Studio บ่นว่าไม่พบ dll: s ในโฟลเดอร์รีลีส

  • โครงการ Visual Studio ร้องเรียนเกี่ยวกับถูกใช้โดยโครงการอื่น ๆ ในโซลูชัน

  • ฉันได้เปลี่ยนเส้นทางเอาต์พุตเริ่มต้นของโครงการทั้งหมดเป็น ...... \ build \ debug \ ProjectName และ ...... \ build \ release \ ProjectName ตามลำดับ (เพียงเพื่อรับไฟล์บิลด์ทั้งหมดในไดเร็กทอรีเดียว)

  • ฉันมีปัญหาเดียวกันกับวิธีแก้ปัญหาอื่น

  • โซลูชันถูกสร้างขึ้นตั้งแต่เริ่มต้น

  • มี 9 โครงการในการแก้ปัญหา หนึ่งไลบรารีคลาส WPF และ 8 โดยใช้ dotnet 3.5

มีความคิดเห็นเกี่ยวกับอะไรที่ทำให้เกิดปัญหานี้


คำตอบ:


133

ฉันมีปัญหาที่คล้ายกันซึ่ง "ไม่พบข้อมูลเมตา" บนคุณสมบัติโซลูชันตรวจสอบให้แน่ใจว่ามีการทำเครื่องหมายในกล่องกาเครื่องหมาย "build" ในBuild / Configuration Managerสำหรับแต่ละโปรเจ็กต์


16
สำหรับใครที่หาไม่เจอ Build / Configuration Manager หมายถึงเมนู Build -> Configuration Manager รายการเมนู
John Kurlak

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

9
บางครั้งสิ่งนี้ก็ไม่ช่วยอะไรดังที่ Nick ระบุไว้ข้างต้น ในกรณีนั้นการปิดและรีสตาร์ท VS ได้ผลสำหรับฉันเสมอ YMMV.
philofinfinitejest

3
ไม่ได้แก้ปัญหา ฉันรีสตาร์ท VS แต่มันไม่สามารถแก้ปัญหาได้
Shimmy Weitzhandler

26

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

(ฉันเพิ่งเจอสิ่งนี้ในวันนี้และในอดีตและสิ่งนี้ได้ผลเสมอ)


เฉพาะโครงการที่อยู่ในโซลูชันของฉันเท่านั้นที่บ่น
The Muffin Man

7

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

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

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


1
+1 สำหรับหมายเหตุเกี่ยวกับความไม่ถูกต้องของข้อความเหล่านี้ สิ่งนี้ถูกตัดขึ้นสำหรับฉันเนื่องจากเส้นทางไปยังแอสเซมบลีที่อ้างถึงในโซลูชันเสีย การอ่านและการคอมไพล์ใหม่จะช่วยแก้ปัญหาได้
E.Rodriguez

6

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


5

สำหรับฉันฉันมีโครงการที่อ้างถึงในโครงการอื่น มันไม่ได้แสดงว่ามันเสียในรายการอ้างอิงในหน้าต่าง explorer โซลูชัน แต่ฉันก็ลบและอ่านมันอยู่ดี ตอนนี้สร้างได้ดี!


แท้จริงแล้วฉันลบการอ้างอิงทั้งหมดและเพิ่มอีกครั้ง

3

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

ฉันพบว่าหากคุณคลิกขวาที่โซลูชันของคุณใน Solution Explorer และเลือก "ลำดับการสร้าง" คุณจะเห็นลำดับที่ VS ใช้เพื่อสร้างโซลูชันของคุณใหม่ มันน่าจะตีไม่ออก

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


2

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

คำตอบนี้มีไว้สำหรับการอ้างอิงในอนาคตสำหรับผู้อื่นเนื่องจากฉันทราบว่าคำถามนี้มีอายุเกิน 15 เดือน

ไชโย


2

ฉันมีสองสามจุดที่ฉันต้องการจะทำ

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

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

คุณควรจำไว้ว่าวิธีที่ Visual Studio สร้างลำดับการสร้างนั้นไม่เหมือนกับวิธีที่ MSBuild ทำ เนื่องจาก MSBuild ขึ้นอยู่กับไฟล์โครงการเป็นหลักเพื่อบอกว่าการอ้างอิงคืออะไรในขณะที่ Visual Studio สามารถบันทึกไว้ในไฟล์ soltuion ดังนั้นบางครั้งคุณสามารถเห็นสถานการณ์ที่ Visual Studio สร้างโซลูชันได้อย่างสมบูรณ์แบบ แต่ MSBuild ไม่สามารถทำได้

ฉันมีสองสามกรณีที่ฉันต้องปรับแต่งลำดับที่โครงการปรากฏในไฟล์โซลูชันเช่นเดียวกับลำดับที่โครงการแสดงรายการในองค์ประกอบ ProjectReferences ในโครงการเว็บไซต์ในไฟล์โซลูชัน

ฉันหวังว่าข้อมูลข้างต้นจะช่วยได้


2

หากคุณใช้บริบทข้อมูล LinqtoSQL และไฟล์. designer.cs หายไปคุณจะได้รับข้อผิดพลาดไม่พบไฟล์ข้อมูลเมตา

การสร้างไฟล์ designer.cs ใหม่เป็นเรื่องง่าย

เปิด dbml โดยใช้มุมมอง xml เพิ่มบรรทัดว่างจากนั้นลบออกจากนั้นบันทึก นั่นควรสร้างไฟล์ designer.cs ของคุณขึ้นมาใหม่

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


2

ฉันมีปัญหาคล้ายกันทุกครั้งที่อัปเดตโครงการจาก SVN
อีกวิธีหนึ่งสำหรับ ASP.NET:

  1. ปิด IDE
  2. ลบไฟล์ในC:\WINDOWS\microsoft.net\framework\v…\Temporary ASP.NET File\.

1

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


1

ขั้นแรกตรวจสอบให้แน่ใจว่าได้ทำเครื่องหมายในช่อง "build" ใน Build -> Configuration Manager สำหรับแต่ละโปรเจ็กต์

ในกรณีหากคุณมีโครงการทั้งหมดที่เลือกไว้แล้วในเมนู Build -> Configuration Manager และการรีสตาร์ทเคล็ดลับ VS จะไม่ได้ผลสำหรับคุณมากกว่าที่คุณจะต้องหาข้อมูลอ้างอิงของไฟล์ (อาจเป็น dll หรือ cs) ใน โครงการของคุณและลบการอ้างอิงเหล่านั้นด้วยตนเอง ไฟล์ / ข้อมูลอ้างอิงเหล่านั้นควรแสดงด้วยไอคอนสีเหลือง ข้อผิดพลาดจะแนะนำคุณอย่างแน่นอนว่าคุณควรพิจารณาโครงการใด

สาเหตุของข้อผิดพลาดนี้เป็นเพราะคุณได้ลบไฟล์ด้วยตนเองใน windows explorer และ VS ไม่ได้อัปเดตข้อมูลอ้างอิงและพยายามค้นหาไฟล์ที่ไม่มีอยู่แล้ว!


1

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

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


0

สิ่งเดียวกันเกิดขึ้น ฉันมีโซลูชันหลายอย่างที่อ้างถึงโครงการไลบรารีเดียวกัน (.net 3.5) ฉันสังเกตเห็นเมื่อมีการสร้างขึ้นใน debug / config ปกติและอีกอันใช้คำสั่งคอมไพเลอร์อื่น ๆ (sqlite / local mode) สิ่งนี้จะเกิดขึ้น เพียงแค่สร้างโครงการทั้งสองด้วยคำสั่งเดียวกันและคุณก็จะสบายดี


0

หากคุณเพิ่มโปรเจ็กต์ใหม่ลงในโซลูชันให้ตรวจสอบว่านี่อยู่ในรายการบิลด์ (ดูเครื่องมือจัดการการกำหนดค่า)


0

ฉันติดปัญหาการบันทึกเมื่อฉันต้องการรวมไฟล์ dll ที่ Matlab สร้างขึ้น และในที่สุดฉันก็แก้ไขโดยคัดลอกไฟล์. ctf ซึ่งหมายถึงใบรับรองที่ฉันคิดไว้และ. netmodule ซึ่งจำเป็นสำหรับการทำงานที่เหมาะสมของ. dll พร้อมกับไฟล์. dll และได้ผลจริง! ดังนั้นข้อเสนอแนะของฉันคือการตรวจสอบว่า. dll ต้องการไฟล์อื่นใดเพื่อให้เข้ากับ


0

Windows 7 Ultimate 32 Visual Studio 2008 SQL Server v2005

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

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

โชคดี


0

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


0

EE - ในกรณีของฉันปัญหาอยู่ในโปรเจ็กต์ที่มีเอนทิตีเฟรมเวิร์กให้เปิดไดอะแกรมลากตารางใดก็ได้ 2 ซม. :) แล้วบันทึก VS จะอัปเดตลิงก์ทั้งหมดของเขาไปยังฐานข้อมูล ... สร้างโปรเจ็กต์นี้และสร้างโซลูชัน , Buildssss.


0

สิ่งเดียวที่แก้ไขฉัน (เพราะฉันไม่ได้ใช้ VS2010 ในบัญชีผู้ดูแลระบบ) คือการย้ายตัวแปรสภาพแวดล้อม VS120COMNTOOLS จากตัวแปรระบบไปยังตัวแปรผู้ใช้ด้วยตนเอง


0

การลบรายการของไฟล์ต้นฉบับทั้งหมดซึ่งไม่มีอยู่ในตัวควบคุมแหล่งที่มาอีกต่อไปและระบบไฟล์จากไฟล์. csproj ของคุณได้ผลสำหรับฉัน


แนวทางโดยละเอียด:

คำตอบต่อไปนี้ของฉันไม่ใช่แค่บทสรุปของวิธีแก้ปัญหาทั้งหมด แต่มีมากกว่านั้น

ส่วนที่ 1):

ในการแก้ปัญหาทั่วไป:

ฉันมีข้อผิดพลาดประเภทนี้ 4 รายการ ('ไม่พบไฟล์ข้อมูลเมตา') พร้อมกับข้อผิดพลาด 1 รายการที่ระบุว่า 'ไม่สามารถเปิดไฟล์ต้นฉบับได้ (' ข้อผิดพลาดที่ไม่ระบุ ')'

ฉันพยายามกำจัดข้อผิดพลาด 'ไม่พบไฟล์ข้อมูลเมตา' ด้วยเหตุนี้ฉันจึงอ่านโพสต์บล็อกและอื่น ๆ มากมายและพบว่าโซลูชันเหล่านี้อาจมีประสิทธิภาพ (สรุปไว้ที่นี่):

  1. รีสตาร์ท VS แล้วลองสร้างอีกครั้ง

  2. ไปที่'Explorer โซลูชัน' คลิกขวาที่โซลูชัน ไปที่ Properties ไปที่'Configuration Manager' ตรวจสอบว่ามีการทำเครื่องหมายในช่องใต้"สร้าง"หรือไม่ หากไม่ได้เลือกรายการใดรายการหนึ่งหรือทั้งหมดให้ตรวจสอบและลองสร้างอีกครั้ง

  3. หากวิธีแก้ปัญหาข้างต้นไม่ได้ผลให้ทำตามลำดับที่กล่าวถึงในขั้นตอนที่ 2 ข้างต้นและแม้ว่าจะเลือกช่องทำเครื่องหมายทั้งหมดแล้วให้ยกเลิกการเลือกตรวจสอบอีกครั้งและลองสร้างอีกครั้ง

  4. สร้างคำสั่งซื้อและการพึ่งพาโครงการ:

    ไปที่'Explorer โซลูชัน' คลิกขวาที่โซลูชัน ไปที่โครงการพึ่งพา ... ' คุณจะเห็น 2 แท็บ: 'การพึ่งพา'และ 'การสั่งซื้อรูปร่าง' ลำดับการสร้างนี้เป็นลำดับที่สร้างโซลูชัน ตรวจสอบการอ้างอิงโปรเจ็กต์และลำดับการสร้างเพื่อตรวจสอบว่าโปรเจ็กต์บางโปรเจ็กต์ (พูดว่า 'โปรเจ็กต์ 1') ซึ่งขึ้นอยู่กับโปรเจ็กต์อื่น (พูดว่า 'โปรเจ็กต์ 2') กำลังพยายามสร้างก่อนโปรเจ็กต์นั้น (โปรเจ็กต์ 2) นี่อาจเป็นสาเหตุของข้อผิดพลาด

  5. ตรวจสอบเส้นทางของ. dll ที่หายไป:

    ตรวจสอบเส้นทางของ. dll ที่หายไป หากพา ธ มีช่องว่างหรืออักขระพา ธ อื่นที่ไม่ถูกต้องให้ลบออกและลองสร้างอีกครั้ง

    หากเป็นสาเหตุให้ปรับลำดับการสร้าง


ส่วน (2):

กรณีเฉพาะของฉัน:

ฉันลองทำตามขั้นตอนทั้งหมดข้างต้นด้วยการเรียงสับเปลี่ยนและชุดค่าผสมต่างๆด้วยการรีสตาร์ท VS สองสามครั้ง แต่มันไม่ได้ช่วยฉัน

ดังนั้นฉันจึงตัดสินใจที่จะกำจัดข้อผิดพลาดอื่น ๆ ที่ฉันเจอ ('ไม่สามารถเปิดไฟล์ต้นฉบับได้ (' ข้อผิดพลาดที่ไม่ระบุ ')')

ฉันเจอบล็อก: http://www.anujvarma.com/tfs-errorsource-file-could-not-be-opened-unspecified-error/#comment-1539

ฉันลองทำตามขั้นตอนที่กล่าวถึงในบล็อกนั้นและฉันได้กำจัดข้อผิดพลาด'Source File can't Be Opened (' Unspecified error ')'และน่าแปลกใจที่ฉันได้กำจัดข้อผิดพลาดอื่น ๆ('ไม่พบไฟล์ข้อมูลเมตา')ด้วย


ส่วน (3):

นิทานสอนใจ:

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


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