ไม่พบไฟล์ข้อมูลเมตา '.dll'


722

ฉันกำลังทำงานกับโครงการ WPF, C # 3.0 และฉันได้รับข้อผิดพลาดนี้:

Error 1 Metadata file
'WORK=- \Tools\VersionManagementSystem\BusinessLogicLayer\bin\Debug
\BusinessLogicLayer.dll' could not be found C:\-=WORK=- \Tools
\VersionManagementSystem\VersionManagementSystem\CSC VersionManagementSystem

นี่คือวิธีที่ฉันอ้างอิงการควบคุมผู้ใช้ของฉัน:

xmlns:vms="clr-namespace:VersionManagementSystem"
<vms:SignOffProjectListing Margin="5"/>

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

ฉันได้ตรวจสอบคำสั่งสร้างและการกำหนดค่าการอ้างอิง

อย่างที่คุณเห็นมันดูเหมือนว่าจะตัดทอนเส้นทางสัมบูรณ์ของไฟล์ DLL ออกไป ... ฉันได้อ่านว่ามีข้อบกพร่องที่มีความยาว นี่เป็นปัญหาที่เป็นไปได้หรือไม่?

มันน่ารำคาญมากและต้องแสดงความคิดเห็นสร้างและไม่แสดงความคิดเห็นงานสร้างกำลังน่าเบื่ออย่างยิ่ง


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

คำถามนี้มีคำตอบที่จะมีคุณสมบัติเป็นที่ยอมรับหรือไม่? ฉันพบหนึ่งโดย @Matt_Bro จะค่อนข้างดี
demongolem

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


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

คำตอบ:


906

ฉันมีปัญหาเดียวกัน Visual Studio ไม่ได้สร้างโครงการที่ถูกอ้างอิง

คำแนะนำในการเขียน:

  1. คลิกขวาที่โซลูชันและคลิกคุณสมบัติ
  2. คลิกการกำหนดค่าทางด้านซ้าย
  3. ตรวจสอบให้แน่ใจว่าได้ทำเครื่องหมายในช่องภายใต้ "สร้าง" สำหรับโครงการที่ไม่พบ หากมีการตรวจสอบแล้วยกเลิกเลือกกดนำไปใช้และทำเครื่องหมายในกล่องอีกครั้ง
  4. (ไม่บังคับ) คุณต้องทำทั้งโหมด Release และ Debug ในคุณสมบัติโซลูชัน

คำแนะนำในการดักจับหน้าจอ:

  • พวกเขาบอกว่ารูปภาพมีค่าหนึ่งพันคำ คลิกที่ GIF เพื่อขยายและหวังว่ามันจะง่ายต่อการติดตาม:

คำแนะนำ Gif


177
และในกรณีของฉันแม้ว่าจะมีการทำเครื่องหมายที่ช่องทำเครื่องหมาย แต่ก็ไม่ได้ทำการเลือกและตรวจสอบอีกครั้งเพื่อแก้ไขปัญหา
ngm

13
นี่เป็นการแก้ไขปัญหาของฉัน - ฉันต้องทำทั้งโหมด Release และ Debug กับคุณสมบัติของโซลูชัน ขอบคุณ!
theJerm

133
Simble ไม่ได้เลือก / ตรวจสอบไม่ได้แก้ปัญหาดังนั้นฉันต้องทำตามขั้นตอนถัดไป: - วิธีแก้ปัญหาที่สะอาด - ยกเลิกการทำเครื่องหมายที่ช่องทำเครื่องหมายทั้งหมด - เริ่มต้น VS - ตรวจสอบช่องทำเครื่องหมายสร้างทั้งหมด - สร้างโซลูชัน
frankie

27
สิ่งอื่นที่ต้องทำคือตรวจสอบการอ้างอิงแต่ละโครงการด้วยเหตุผลบางอย่างมันไม่ได้ตั้งค่านี้โดยอัตโนมัติ คุณสมบัติโซลูชัน -> คุณสมบัติทั่วไป -> การพึ่งพาโครงการ
Anicho

9
ยกเลิกการเลือก -> ตรวจสอบใช้งานได้สำหรับฉันโดยย่อแล้วปัญหากลับมา จากนั้นฉันเริ่ม Visual Studio ใหม่และปัญหาก็หายไป
DeveloperDan

224

สิ่งนี้สามารถเกิดขึ้นได้ใน Visual Studio รุ่นที่ใหม่กว่า (ฉันเพิ่งเกิดขึ้นใน Visual Studio 2013):

อีกสิ่งที่ควรลองคือการปิด Visual Studio และลบ.suoไฟล์ที่อยู่ถัดจาก.slnไฟล์ (มันจะถูกสร้างขึ้นใหม่ในครั้งต่อไปที่คุณSave all(หรือออกจาก Visual Studio))

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

โปรดทราบว่าการลบ.suoไฟล์จะรีเซ็ตโครงการเริ่มต้นของโซลูชัน

เพิ่มเติมเกี่ยวกับ.suoไฟล์ที่นี่


24
นี่เป็นการแก้ไขปัญหาสำหรับฉัน ด้วยมูลค่าการกล่าวขวัญว่า.suoไฟล์ถูกซ่อนอยู่ ดังนั้นคุณจะต้องตั้งค่า explorer ของคุณเพื่อแสดงไฟล์ที่ซ่อนอยู่
George Howarth

6
ฉันทำงานกับโครงการ Xamarin และไฟล์. suo ตั้งอยู่ใน. vs / โฟลเดอร์ ฉันพยายามลบมันและมันก็ไม่ได้แก้ปัญหาของฉัน

VS2013 - ฉันต้องย้ายพื้นที่ทำงาน TFS ไปยังตำแหน่งอื่น หลังจากฉันเสร็จฉันก็เริ่มได้รับข้อผิดพลาดนี้ การลบไฟล์ sou นั้นใช้งานได้สำหรับฉัน
Vin

40
มันก็ใช้ได้กับฉันเช่นกัน แต่ใน Visual Studio 2015 .suoไฟล์เป็นทั้งที่ซ่อนอยู่และตั้งอยู่ภายในซ่อนไดเรกทอรีข้าง.vs .slnเช่นถ้าไฟล์โซลูชันถูกc:\foo\mysolution.slnมองหาc:\foo\mysolution\.vs\mysolution\v14\.suo
Wyck

6
สำหรับ VS2017 เพื่อความเรียบง่ายฉันเพิ่งลบ.vsโฟลเดอร์ที่ถูกซ่อนแทนซึ่งลบ.suoไฟล์ด้วย ฉันเปิดโซลูชันอีกครั้งแก้ไขข้อผิดพลาดที่ไม่เกี่ยวข้องอีกหนึ่งข้อและแก้ไขปัญหาแล้ว
user3613932

183

คำตอบที่แนะนำไม่ได้ผลสำหรับฉัน ข้อผิดพลาดเป็นตัวล่อสำหรับปัญหาอื่น

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


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

1
เหมือนกันสำหรับฉันโดยใช้ vs2015
bruno.bologna

อ๋อ ที่จริงก็เกิดขึ้นกับฉันเช่นกัน VS 2015
KevinDeus

ขอบคุณ! นี่เป็นการแก้ไขปัญหาของฉัน VS 2015 หลังจากอัพเกรดโครงการเป็น. Net Framework 4.7.1
DHoover

ว้าวนี่แก้ไขให้ฉัน โครงการใหม่กำลังกำหนดเป้าหมายเป็น. net เวอร์ชันอื่น ไม่สามารถเชื่อได้ว่าไม่มีการตรวจสอบเรื่องนี้แม้ใน vs2017
Douglas Gaskell

104

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

ส่วนที่ 1):

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

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

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

  1. เริ่ม Visual Studio ใหม่และลองสร้างอีกครั้ง

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

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

  4. สร้างใบสั่งและการอ้างอิงโครงการ:

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

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

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

    หากนี่คือสาเหตุให้ปรับลำดับการสร้าง


ส่วน (2):

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

ฉันลองทำตามขั้นตอนทั้งหมดข้างต้นด้วยพีชคณิตและชุดค่าผสมต่าง ๆ ด้วยการรีสตาร์ท Visual Studio สองสามครั้ง แต่มันไม่ได้ช่วยฉัน

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

ฉันเจอโพสต์บล็อก: TFS Error - ไม่สามารถเปิดไฟล์ต้นฉบับได้ ('ข้อผิดพลาดที่ไม่ระบุ')

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


ส่วน (3):

นิทานสอนใจ:

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


4
ปัญหาของฉันคือการสร้างคำสั่งซื้อ / อ้างอิงโครงการ การลบและเพิ่มการอ้างอิงกลับจากโครงการอื่น ๆ จะแก้ไขสิ่งนี้ (ฉันคิดว่า) แต่คุณก็สามารถทำได้ด้วยตัวคุณเองเช่นกัน
Nacht - Reinstate Monica

4
ฉันต้องเผชิญกับปัญหานี้โดยการลงจัดลำดับโครงการ.NET v4.5 .NET v.4
guneysus

1
การลบ "%" ออกจากเส้นทาง dll ที่อ้างอิงได้ช่วยฉันด้วย
Boogier

1
วิธีแก้ปัญหาในส่วนที่ 2 ได้ผลสำหรับฉัน! ฉันมีข้อผิดพลาดอื่นและเมื่อฉันแก้ไขว่าคนอื่นหายไปอย่างน่าอัศจรรย์
Martin Johansson

1
ฉันมีปัญหาเดียวกันกับ Boogier มี% 20 ในชื่อโฟลเดอร์ของฉันแทนที่จะเว้นวรรคและ dll กำลังมองหาที่ว่าง ใช้เวลามากมายในการลองแก้ไขอื่น ๆ ทั้งหมดเมื่อสิ่งที่เกิดขึ้นจริงนั้นง่ายที่สุด
Lenny K

38

ในกรณีของฉันมันเกิดจาก. NET Framework รุ่นไม่ตรงกัน

หนึ่งโครงการคือ 3.5 และโครงการอ้างอิงอื่น ๆ 4.6.1


2
สิ่งนี้เกิดขึ้นระหว่าง 4.5.2 กับ 4.6
AzzamAziz

2
แน่นอนฉันมีหนึ่งใน 4.6.1 และที่เหลือคือ 4.5.2 ขอบคุณ!
Mason

7
ใช่ดูเหมือนว่าทุกครั้งที่เวอร์ชันเฟรมเวิร์กแตกต่างกันเกิดขึ้น ข้อผิดพลาดที่ยอดเยี่ยมของ Microsoft!
Eric Schneider

ได้! ฉันพยายามใช้. Net 4.7.1. dll เมื่อโครงการของฉันคือ. Net 4.6.1 คำเตือนถูกซ่อนไว้โดยรายการอื่น ๆ แต่ไม่มีข้อผิดพลาดเกี่ยวกับเรื่องนี้ ข้อผิดพลาดของฉันคือปลาเฮอริ่งแดง
Esaith

29

การปิดและเปิด Visual Studio 2013 ใหม่สำหรับฉัน!


รับปัญหานี้หลังจากคืนค่าการเปลี่ยนแปลง git เป็นไฟล์โครงการ เริ่ม VS2015 ใหม่และแก้ไขปัญหา
Ludovic C

ควรทำเครื่องหมายว่าเป็นคำตอบที่ยอมรับได้ การทำเครื่องหมาย / ไม่เลือกช่องทำเครื่องหมายใช้เวลานาน
Alex

1
ยังคงมีปัญหานี้กับ VS2019 และสิ่งนี้แก้ไขได้สำหรับฉันขอบคุณ
pcdev

20

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

ฉันเห็นได้ชัดว่าการอ้างอิงไฟล์ข้อมูลเมตาที่ไม่ถูกต้องนี้จะต้องถูกเก็บไว้ที่ใดที่หนึ่ง

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

<ItemGroup>
    <ProjectReference Include="..\..\..\MySiteOld\MySite.Entities\MySite.Entities.csproj">
        <Project>{5b0a347e-cd9a-4746-a3b6-99d6d010a6c2}</Project>
        <Name>Beeyp.Entities</Name>
    </ProjectReference>
...

ดังนั้นการแก้ไขที่ง่ายจริงๆ:

  1. สำรองไฟล์. csproj ของคุณ
  2. ค้นหาเส้นทางที่ไม่ถูกต้องในไฟล์. csproj และเปลี่ยนชื่ออย่างเหมาะสม

โปรดตรวจสอบให้แน่ใจว่าคุณได้สำรอง. csproj เก่าก่อนที่คุณจะทำตาม


38
โปรดตรวจสอบให้แน่ใจว่าคุณใช้การควบคุมเวอร์ชันก่อนที่คุณจะทำอะไร
svick

14

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


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

ในกรณีของฉันมันไม่ได้สร้างโครงการเป็นรายบุคคลมันทำให้ฉันมีข้อผิดพลาดเดียวกัน สมมติว่าชื่อโปรเจคของฉันคือ "proj1" เมื่อฉันสร้างมันขึ้นมาเอง (ตามที่คุณพูด) มันให้ฉันMetadata file ...proj1.dll could not be found!
A-Sharabiani

14

ในกรณีของฉันฉันมีไดเรกทอรีที่ติดตั้งในทางที่ผิด

หากเส้นทางโซลูชันของคุณเป็นเช่น "My Project% 2c ที่นิยมมาก% 2c การทดสอบหน่วย% 2c ซอฟต์แวร์และฮาร์ดแวร์" ซิปมันไม่สามารถแก้ไขไฟล์ข้อมูลเมตาได้บางทีเราควรป้องกันคำที่ไม่ถูกต้องเช่น% 2c

การเปลี่ยนชื่อเส้นทางเป็นชื่อปกติช่วยแก้ไขปัญหาของฉันได้


1
คุณช่วยอธิบายเพิ่มเติมเกี่ยวกับคำตอบของคุณได้อย่างไรโดยเพิ่มคำอธิบายเพิ่มเติมเล็กน้อยเกี่ยวกับโซลูชันที่คุณให้ไว้?
abarisone

โคลน git ของฉันเพิ่ม% ไปยังเส้นทางโฟลเดอร์ของฉันการลบสิ่งเหล่านี้แก้ไขปัญหาได้
Erik Bergstedt

@abarisone ฉันลบสตริง "% 2c" ออกจากเส้นทางแล้วทำงานได้
masphei

1
นั่นคือปัญหาของฉันเช่นกันเมื่อฉันโคลนโครงการชื่อนั้นใช้ "% 20" แทนที่จะเป็นพื้นที่เรียบง่าย ขอบคุณ @abarisone แนวทางการแก้ไขปัญหาของฉัน
MA Cordeiro

เมื่อฉันโคลนโครงการของฉันจาก TFS ก็เพิ่ม% 20 ด้วยเหตุผลบางอย่าง การลบแก้ไขปัญหาสำหรับฉันเช่นกัน
Selthien

13

ฉันได้รับข้อผิดพลาดเดียวกัน "ไฟล์ Metadata '.dll' ไม่พบ" และฉันลองหลายสิ่งที่อธิบายไว้ข้างต้น แต่สาเหตุของข้อผิดพลาดคือฉันอ้างถึงไฟล์ DLL ของบุคคลที่สามซึ่งกำหนดเป้าหมายรุ่น. NET ที่สูงกว่า ว่าโครงการของฉันมีเป้าหมายเป็นเวอร์ชัน. NET ดังนั้นทางออกคือการเปลี่ยนกรอบเป้าหมายของโครงการของฉัน


ในกรณีของฉันฉันได้เพิ่มการกำหนดเป้าหมายโครงการใหม่. Net 4.5.x และมันเริ่มเกิดขึ้นเมื่อสร้างโครงการที่ฉันเพิ่มการอ้างอิงถึงโครงการที่ใช้. Net 4.6
Juan

12

Visual Studio 2019สิ่งนี้ใช้งานได้สำหรับฉัน:

  1. ปิด Visual Studio
  2. ลบ.vsโฟลเดอร์ที่ซ่อนอยู่
  3. เปิด Visual Studio อีกครั้งและสร้างโซลูชันใหม่

ขอบคุณมากมันใช้ได้ผลกับฉันเช่นกันหลังจากทำบิลด์ที่ล้มเหลวอีกครั้ง
Iamsodarncool

ขอบคุณมันทำให้ฉัน
iaacp

10

สำหรับฉันแล้วมันพยายามค้นหา DLL ในเส้นทางที่เคยมีโครงการ แต่เราต้องการย้ายมันไปยังไดเรกทอรีใหม่ โซลูชันมีเส้นทางที่ถูกต้องไปยังโครงการ แต่ Visual Studio ยังคงมองหาในตำแหน่งเดิม

การแก้ไข: เปลี่ยนชื่อแต่ละปัญหาโครงการ - เพียงแค่เพิ่มตัวละครหรืออะไรก็ตาม - แล้วเปลี่ยนชื่อมันกลับไปเป็นชื่อเดิม

สิ่งนี้จะต้องรีเซ็ตแคชส่วนกลางบางประเภทใน Visual Studio เนื่องจากจะเป็นการล้างทั้งปัญหานี้และอีกหลายอย่างเช่นขณะที่สิ่งที่ไม่สะอาด


10

ฉันเพิ่มโครงการใหม่ในโซลูชันของฉันและเริ่มได้รับสิ่งนี้

เหตุผล? โครงการที่ฉันนำเข้ามานั้นคือการกำหนดเป้าหมายกรอบงาน. NET ที่แตกต่างกัน (4.6 และอีกสองโครงการของฉันคือ 4.5.2)


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

TLDR: ตรวจสอบคำเตือนการคอมไพล์ นี่คือสิ่งที่เกิดขึ้นกับฉัน แต่มีการบิด projs อยู่ที่ 4.5.2 เพิ่มโครงการใหม่ที่ 4.6 ติดตั้งแพ็คเกจ nuget บน 4.6 โปรเจ็กต์ ลดระดับโครงการ 4.6 เป็น 4.5.2 นักเก็ตคาดหวัง 4.6 แก้ไขระดับของนักเก็ตแล้ว
w00ngy

9

สำหรับฉันมันเกิดขึ้นเมื่อฉันรวมโครงการใหม่เข้ากับโซลูชัน

Visual Studio เลือก. NET Framework 4.5 โดยอัตโนมัติ

ฉันเปลี่ยนเป็นเวอร์ชั่น. NET 4.5.2 เช่นเดียวกับห้องสมุดอื่น ๆ และใช้งานได้


8

สำหรับฉันขั้นตอนต่อไปนี้ทำงาน:

  • ค้นหาโครงการที่ไม่ได้สร้าง
  • ลบ / เพิ่มการอ้างอิงไปยังโครงการภายในโซลูชัน

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

8

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

จากนั้นฉันปิด Visual Studio 2013 เปิดโซลูชันของฉันใหม่และรวบรวมได้ดี

มันแปลกเพราะถ้าฉันคลิกแต่ละโครงการใน Solution Explorer ของฉันและพยายามสร้างมันขึ้นมาแบบนั้นพวกเขาทั้งหมดก็ล้มเหลว ฉันต้องเปิดพวกเขาคนเดียวในการแก้ปัญหาของตัวเอง


1
ฮึนี้ Microsoft มีหลายสิ่งหลายอย่างที่ต้องการการรีสตาร์ทเพื่อให้ทำงานได้อีกครั้ง
Yatrix

8

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

ในกรณีของฉันปัญหาเกิดขึ้นจริงว่าError Listหน้าต่างไม่แสดงข้อผิดพลาดใด ๆ แต่จริงๆแล้วมีข้อผิดพลาดทางไวยากรณ์; ฉันพบข้อผิดพลาดเหล่านี้ในOutputหน้าต่างและหลังจากแก้ไขปัญหาแล้วปัญหาได้รับการแก้ไขแล้ว


ฉันประสบปัญหานี้เช่นกัน ไม่มีข้อผิดพลาดในรายการข้อผิดพลาด แต่ผลลัพธ์บิลด์ที่ล้มเหลวใน DevOps แสดงข้อผิดพลาด
amartin

7

อินสแตนซ์ของปัญหาเกิดจากโครงการทั่วไปที่มีชื่อคลาสที่ซ้ำกัน (ภายใต้ชื่อไฟล์อื่น) เป็นเรื่องแปลกที่ Visual Studio ไม่สามารถตรวจจับได้และแทนที่จะสร้างกระบวนการสร้างขึ้นแทน


นี่เป็นความคิดเห็นคำตอบหรือคำถามใหม่หรือไม่? นอกจากนี้โปรดทราบว่า OP คือตั้งแต่ 2009
gmo

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

4
ฉันไม่ได้วิจารณ์การตอบสนองของทุกคนเพียงแค่เสนอทางเลือกอื่นในอาการเดียวกัน
Eric

7

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

ในที่สุดฉันก็ถึงอันที่ทำให้ฉันมีข้อผิดพลาดในการรวบรวม ฉันแก้ไขข้อผิดพลาดและวิธีแก้ไขจะสร้างอย่างถูกต้องหลังจากนั้น


ในกรณีของฉันข้อผิดพลาดถูกซ่อนไว้จนกว่าฉันจะเปิด Visual Studio 2015 ในโหมดผู้ดูแลระบบ จากนั้นแสดงข้อผิดพลาดในการรวบรวมเท่านั้น หลังจากแก้ไขแล้วฉันก็สามารถทำต่อไปได้
SL Barth - Reinstate Monica

6

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


6

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


คุณเป็นอัจฉริยะ !!
Itamar

ฉันไม่เห็นความคิดเห็นของคุณก่อนที่จะคิดออก แต่นี่เป็นปัญหาของฉัน
L จอห์นสัน

6

กลับมาที่นี่อีกไม่กี่ปีต่อมาปัญหานี้มีความเกี่ยวข้องกับขีด จำกัด พา ธ สูงสุดของ Windows:

การตั้งชื่อไฟล์, พา ธ , และเนมสเปซ , การจำกัดความยาวของพา ธ สูงสุด


ซึ่งเป็น...? 260? หรือน้อยกว่าเล็กน้อย (ในทางปฏิบัติ)
Peter Mortensen

6

ในกรณีของฉันปัญหาเกิดจากข้อผิดพลาดบิลด์แบบง่าย

ข้อผิดพลาด CS0067: เหตุการณ์ 'XYZ' ไม่เคยถูกใช้

ไม่ว่าจะด้วยเหตุผลใดก็ตามไม่ปรากฏในหน้าต่างข้อผิดพลาด

เนื่องจากว่าระบบการสร้าง Visual Studio ดูเหมือนจะพลาดข้อผิดพลาดและพยายามสร้างโครงการขึ้นอยู่กับซึ่งล้มเหลวด้วยข้อความเมตาดาต้าที่น่ารำคาญ

ข้อเสนอแนะคือ - เป็นคนโง่เพราะอาจฟัง:

ดูหน้าต่างผลลัพธ์ของคุณก่อน!

ฉันใช้เวลาครึ่งชั่วโมงก่อนที่ความคิดนี้จะตีฉัน ...


ฉันคิดว่าทุกคนควรมองไปที่คำตอบนี้ ดูในหน้าต่างเอาต์พุตของบิลด์และดูว่ามีข้อผิดพลาดหรือคำเตือนใด ๆ จากนั้นแก้ไข แก้ไขปัญหา. ขอบคุณ Heinz Kessler สำหรับคำตอบของคุณ
Captain America

5

ฉันก็มีข้อผิดพลาดเหมือนกัน มันซ่อนอยู่ในเส้นทางด้านล่าง เส้นทางที่ฉันอ้างถึงสำหรับไฟล์ DLL นั้นเป็น "D: \ Assemblies Folder \ Assembly1.dll"

แต่เส้นทางเดิมที่แอสเซมบลีที่อ้างถึงคือ "D: \ Assemblies% 20Folder \ Assembly1.dll"

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

การแก้ปัญหาอยู่ในคำถาม Stack Overflow ฉันจะแทนที่ช่องว่างทั้งหมดด้วย% 20 ใน C # ได้อย่างไร .


5

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

ฉันเพียงแค่ตั้งค่า. class โครงการห้องสมุดไลบรารี่ของฉัน (อันที่มีการสร้างขาด) เหมือนกับเวอร์ชั่น. Net ของโครงการอ้างอิงและแก้ไขปัญหา


1
นี้!!! ในขณะที่คำตอบข้างต้นเป็นสิ่งที่ดีนี่คือสิ่งที่ฉันเพิ่งมองข้ามอย่างสมบูรณ์ ขอบคุณมากครับ
ริส Johns

@RhysJohns แฮปปี้โค้ด :)))
Code_Worm

4

เพียงแค่ชี้ให้เห็นอย่างชัดเจน: หากคุณไม่ได้เปิดใช้งาน "แสดงหน้าต่างผลลัพธ์เมื่อเริ่มต้นการทำงาน" ตรวจสอบให้แน่ใจว่าคุณสังเกตเห็นว่างานสร้างของคุณล้มเหลว (ข้อผิดพลาดเล็ก ๆ


ฉันมีสิ่งที่คล้ายกันเมื่อเร็ว ๆ นี้ - จากข้อผิดพลาดสีน้ำเงินหลายร้อย cs0006 ในบันทึกข้อผิดพลาด แต่ไม่มีอะไรอื่นอีกแล้ว (และฉันหวีมันด้วยหวีที่ดีมาก) ในที่สุด (!) ฉันคิดว่าการดูที่หน้าต่าง Output และมีการรายงานข้อผิดพลาดของคอมไพเลอร์และพอในรหัสข้อผิดพลาดมี squiggle สีแดงอยู่ข้างใต้ ฉันไม่รู้ว่าเหตุใดจึงไม่รายงานข้อผิดพลาดในหน้าต่างข้อผิดพลาด องค์กร VS2017
haughtonomous

4

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

#if DEBUG
    public int SomeProperty { get; set; }
#endif

แต่การใช้คุณสมบัติไม่ได้ การเผยแพร่เสร็จสิ้นในการกำหนดค่า Release โดยไม่มีDEBUGสัญลักษณ์


4

จากข้อความแสดงข้อผิดพลาดฉันไม่เชื่อว่าเส้นทางของไฟล์ถูกตัดทอน ดูเหมือนว่าจะไม่ถูกต้อง หากฉันอ่านข้อความถูกต้องดูเหมือนว่ากำลังมองหาไฟล์ DLL ที่ ...

WORK = - \ Tools \ VersionManagementSystem \ BusinessLogicLayer \ bin \ Debug \ BusinessLogicLayer.dll

นี่ไม่ใช่เส้นทางที่ถูกต้อง เป็นไปได้ไหมว่าคุณมีนิยามแมโครในกระบวนการสร้างที่ตั้งค่าเป็นค่าที่ไม่ถูกต้อง?


ฉันไม่รู้ว่าในขณะที่ฉันไม่ได้เปลี่ยนแปลงอะไรและไม่มีการสร้างเหตุการณ์หรือการกำหนดค่าแบบกำหนดเอง
Oliver

4

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


4

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


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