ไฟล์โครงการถูกย้ายชื่อแล้วหรือไม่ได้อยู่ในคอมพิวเตอร์ของคุณ


150

ฉันได้รับข้อผิดพลาดนี้เมื่อฉันพยายามโหลดโครงการ VS 2008 จากแหล่งควบคุม TFS:

ไฟล์โครงการถูกย้ายเปลี่ยนชื่อหรือไม่ได้อยู่ในคอมพิวเตอร์ของคุณ

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


28
โอ้วิธีที่ฉันเกลียด TFS ที่ให้ปวดหัวฉันเหล่านี้!
John Leidegren

2
ลงไปคุณจะพบคำตอบที่ถูกต้องที่นี่
Claudius

คำตอบ:


270

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

VS สูงสุดถึง 2013

ใน VS แบบเก่าจะถูกเก็บเป็น "ซ่อน" SolutionName.suoในโฟลเดอร์เดียวกับ.slnไฟล์หลัก

VS2015 หรือใหม่กว่า

ใน VS2015 ข้อมูลเดียวกันถูกย้ายไปที่.vsโฟลเดอร์"hidden" ภายใต้โฟลเดอร์เดียวกันกับ.slnไฟล์หลัก


6
+1 ข้อความแสดงข้อผิดพลาดที่โชคร้ายมาก - เป็นไปได้มากที่สุดเมื่อคุณย้ายไฟล์ด้วยวิธี "ถูกต้อง" ตามผู้ให้บริการ SCC ของคุณ (เช่นการใช้ 'tf rename' สำหรับ TFS) การย้ายโครงการบนดิสก์โดยไม่แจ้ง TFS หรือลืมที่จะอัปเดตไฟล์ sln / csproj จะทำให้ข้อความแสดงข้อผิดพลาดแตกต่างกันในประสบการณ์ของฉัน ไฟล์ SUO เป็นแบบทึบดังนั้นคุณจึงต้องเกาหัวจนกว่าคุณจะทำทรีคลีน / เกรียม
Richard Berg

8
มันช่วยประหยัดวันของฉัน;)
Kamil Lach

44
อย่าลืมรีสตาร์ท Visual Studio หลังจากลบไฟล์.
suo

8
โอ้ ดังนั้นตอนนี้ไฟล์. suo ถูกซ่อนไว้ ทำไม? โอ้ฉันรู้ว่าทำไม เราเป็นนักพัฒนาและเห็นได้ชัดว่าไม่สามารถจัดการกับความซับซ้อนที่เพิ่มขึ้นด้วยการดูไฟล์. suo ในไฟล์ open ;-)
Torben Rahbek Koch

29
สิ่งนี้สามารถใช้งานได้ใน Visual Studio 2015 แม้ว่าเส้นทางไปยังไฟล์. suo จะเปลี่ยนเป็น <SolutionFolder> \ .vs \ <SolutionName> \ v14 \ .suo
เกร็ก M.

38

ฉันเพิ่งพบปัญหานี้โดยใช้ VS 2013 หลังจากเปลี่ยนชื่อโครงการ คำตอบของสแตนลีย์ชี้นำฉันไปสู่ทางออก:

ปิด VS - ลบไฟล์. suo - เริ่ม VS อีกครั้ง


1
ฉันอาจผิด แต่ฉันไม่คิดว่าฉันจะเห็นไฟล์. SUO จนกว่าฉันจะปิด VisualStudio
Michael R

5
เพียงต้องการเพิ่ม - จำเป็นที่คุณต้องปิด VS ก่อนที่จะลบ การลบไฟล์ในขณะที่ VS ยังคงเปิดอยู่จากนั้นปิดและเปิดใหม่อีกครั้งโดยไม่มีผลกระทบ ต้องปิดก่อน!
wizloc

23

ลบไฟล์. suo ด้วยวิธีพิเศษ

  1. ไม่ได้เปิดโซลูชันเมื่อคุณลบไฟล์. suo ที่ซ่อนอยู่
  2. รีสตาร์ท VisualStudio
  3. เปิดโซลูชันและเพิ่มโครงการโดยไม่มีข้อความแสดงข้อผิดพลาด

ทำงานให้ฉัน Visual Studio 2019 เฉพาะที่คุณลบ.vsโฟลเดอร์ที่ซ่อนอยู่
user919426

11

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

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

หากคุณ "รับล่าสุด" จะไม่รบกวนการอัปเดตไฟล์ที่หายไป

คุณมีแนวโน้มที่จะได้รับข้อผิดพลาด "ไฟล์ที่หายไป" ทุกประเภทจาก TFS และเครื่องมืออื่น ๆ ที่ค้นหาไฟล์

หากต้องการรับรอบคุณจะต้อง:

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

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

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


ฉันได้ "รับรุ่นที่เฉพาะเจาะจง" และตรวจสอบ "เขียนทับไฟล์ทั้งหมดแม้ว่าเซิร์ฟเวอร์ที่ตรงกับท้องถิ่น" ไม่มีข้อผิดพลาด แต่ไม่มีอะไรเข้าฉันตรวจสอบจากคอมพิวเตอร์เครื่องอื่นและโครงการอยู่ใน TFS และบุคคลอื่นสามารถทำงานได้ดี
sineas

BTW โฟลเดอร์ต้นทางในเครื่องของฉันว่างเปล่า ไม่มีอะไรในนั้น ฉันลบไฟล์ทั้งหมดในตอนแรกเพื่อที่จะได้ไฟล์ใหม่ทั้งหมด เช่นการเปิดโครงการใหม่
sineas

1
ในกรณีนั้นสิ่งต่อไปที่ฉันจะตรวจสอบก็คือการจับคู่พื้นที่ทำงานของคุณ ใน Team Explorer ให้คลิกสองครั้งที่ไอคอนตัวควบคุมแหล่งข้อมูลและที่ด้านบนของหน้าต่างที่ปรากฏขึ้นเป็นกล่องคำสั่งผสมแบบหล่นลง วางสิ่งนี้ลงและเลือก "เพิ่ม / แก้ไขพื้นที่ทำงาน" แก้ไขเวิร์กสเปซของคุณและตรวจสอบว่าโครงการ TFS ที่มีรหัสของคุณมีโฟลเดอร์ที่เกี่ยวข้องในฮาร์ดไดรฟ์ในเครื่องของคุณ และตรวจสอบให้แน่ใจว่าคุณกำลังดูที่โฟลเดอร์นี้เมื่อคุณพยายามโหลดโซลูชัน (คำแนะนำ: เปรียบเทียบการตั้งค่าของคุณไปของนักพัฒนาอื่น ๆ ที่ทำงานเพื่อพยายามที่จะติดตามแหล่งที่มาของปัญหา)
เจสันวิลเลียมส์

9

แม้ว่าจะเป็นข้อบกพร่อง VS ที่รู้จักกันดี แต่เราสามารถจัดการกับมันได้!

  • เปิดไฟล์โซลูชันในโหมดแก้ไข

  • ปรับเปลี่ยนเส้นทางสัมพัทธ์เพื่อให้ตรงกับเส้นทางกายภาพที่ถูกปรับเปลี่ยน / ย้าย

    SccProjectUniqueName1 = Source\\Order\\Order.csproj
    SccProjectName1 = Order.ApplicationService
    SccLocalPath1 = Order.ApplicationService
    
  • นอกจากนี้ทำให้เส้นทางสัมพันธ์ที่ถูกต้องสำหรับโครงการอ้างอิง

    Project("{asdasd-301F-11D3-BF4B-asdasd}") = "Order",
            "Source\Order\Order.csproj", "{E25641BC-C990-40E2-8876-08AE8728F763}"
    EndProject
    

6

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


ฉันพยายามเปิดไฟล์. vbproj และนี่คือสิ่งที่ฉันได้รับ "ไฟล์ที่เลือกไม่สามารถเปิดเป็นโซลูชันหรือโครงการได้โปรดเลือกไฟล์โซลูชันหรือไฟล์โครงการ" โปรดใส่วิธีสร้างไฟล์. sln อีกครั้ง ฉันยังใหม่กับสิ่งนี้ ขอบคุณ
sineas

ขอบคุณ! เปิดไฟล์ csproj เมื่อออกจากระบบขอให้สร้าง / บันทึกไฟล์. sln ใหม่และเขียนทับไฟล์เก่า!
Rafael

5

ตัวเลือกที่ง่ายที่สุดสำหรับฉันคือ:

  1. คลิกขวาที่โครงการ & ลบโครงการ "ไม่โหลด" หรือ "ไม่พร้อมใช้งาน"
  2. คลิกขวาที่โซลูชัน & เพิ่ม "โครงการที่มีอยู่"

ฉันได้ลองแล้ว แต่ยังคงเป็นข้อผิดพลาดเดียวกันไม่สามารถยืนข้อผิดพลาดโง่ ๆ นี้ได้ (ข้อผิดพลาดจริง ๆ ฉันไม่สามารถยอมรับข้อผิดพลาดที่น่ารังเกียจชนิดนี้ได้อย่างสับสนมาก)
สิ้นหวัง

1
ง่ายและตรงไปตรงมา ... เข้าใจแล้ว
Sarath Mohandas

3

ในกรณีของฉันการลบไฟล์. suo ไม่เพียงพอ ฉันค้นพบว่าการกำหนดค่าพื้นที่ทำงานของฉันมีข้อผิดพลาด ฉันค้นพบและแก้ไขปัญหาด้วยขั้นตอนเหล่านี้:

  1. ใน Team Explorer "จัดการพื้นที่ทำงาน ... "

    ป้อนคำอธิบายรูปภาพที่นี่

  2. คลิก "แก้ไข ... "

    ป้อนคำอธิบายรูปภาพที่นี่

  3. แก้ไขค่าใน "Local Folder"

    ป้อนคำอธิบายรูปภาพที่นี่

  4. สุดท้ายลบไฟล์. suo ที่ได้รับผลกระทบต่อคำตอบที่ยอมรับ



1

ล้างการแมปพื้นที่ทำงานของคุณ (ไฟล์ -> การควบคุมแหล่งที่มา -> พื้นที่ทำงาน) แก้ไขเวิร์กสเปซและล้างการแมปทั้งหมด (แสดงผลมากกว่า) หรือค้นหาที่เกี่ยวข้องกับพา ธ เซิร์ฟเวอร์นี้ จากนั้นเปิด Explorer การควบคุมแหล่งที่มาและทำการแมปใหม่ คลิกสองครั้งที่ SLN ในตัวควบคุมแหล่งข้อมูลและควรได้รับล่าสุด ไม่แน่ใจทั้งหมดว่าเกิดอะไรขึ้นหรือคุณระบุว่าจะจัดการอะไร แต่สิ่งนี้จะทำให้คุณย้ายได้อีกครั้ง


1

ฉันพบปัญหานี้และสามารถแก้ไขได้โดยรับ.rptprojไฟล์จากเพื่อนร่วมงานและคัดลอกลงในไดเรกทอรีในเครื่องของฉัน โครงการสามารถโหลดซ้ำได้


1

ฉันใช้เวลามากมายในการพยายามแก้ไขปัญหานี้ ฉันทำตามขั้นตอนเหล่านี้: เปลี่ยนชื่อโครงการเปลี่ยนชื่อเนมสเปซเปลี่ยนชื่อโฟลเดอร์โครงการแก้ไขไฟล์. sln แก้ไขไฟล์. suo ที่ซ่อนอยู่ โหลดโครงการแล้ว แต่ไม่รู้จัก TFS! ในที่สุดฉันก็พบคู่มือนี้

หากคุณใช้ Resharper และ TFVC เป็นตัวควบคุมเวอร์ชันของคุณให้ทำตามขั้นตอนเหล่านี้:

  • คลิกขวาที่โครงการในโซลูชัน Explorer เลือกเปลี่ยนชื่อและป้อนชื่อใหม่

  • คลิกขวาที่โครงการอีกครั้งและเลือกคุณสมบัติ เปลี่ยน "Assembly name" และ "Default namespace" บนแท็บแอปพลิเคชัน

  • คลิกขวาที่โครงการอีกครั้งและเลือก Refactor -> ปรับ Namespaces ยอมรับการเปลี่ยนแปลง

  • เปลี่ยน AssemblyTitle และ AssemblyProduct ใน Properties / AssemblyInfo.cs

  • ลบไดเรกทอรี bin และ obj ใน Windows Explorer

  • เปิด Explorer การควบคุมแหล่งที่มาและเปลี่ยนชื่อไดเรกทอรีของโครงการ นี่จะปิดโซลูชัน ปล่อยให้มันถูกปิด

  • เปิดไฟล์ SLN (ด้วยโปรแกรมแก้ไขข้อความเช่น Notepad ++) และเปลี่ยนเส้นทางไปยังโครงการ (ควรมีหลายที่)

  • เปิดโซลูชันอีกครั้ง ทำความสะอาดและสร้างโครงการใหม่


0

คลิกขวาที่โครงการไม่พร้อมใช้งานและแก้ไขไฟล์โครงการ ... โอกาสที่คุณจะพบเส้นทางไฟล์ hardcoded หรือไฟล์เสมือนที่ไม่ตรงกับตำแหน่งที่คุณตรวจสอบโครงการ

ความเมตตา

แดน


2
ไม่มีตัวเลือกแก้ไข โครงการโหลดซ้ำเพียงครั้งเดียวตัดและลบ
sineas

0

ทางออกสำหรับสิ่งนี้

  1. เปลี่ยนชื่อโฟลเดอร์โครงการอีกครั้ง
  2. ตั้งค่าเฉพาะรุ่น & บังคับรับใน TFS
  3. ลบตัวเลือกแบบอ่านอย่างเดียวและซ่อนในโฟลเดอร์ล่าสุด (ไม่ใช่ตัวเปลี่ยนชื่อ)
  4. ตอนนี้คุณสามารถเปิดโครงการได้โดยไม่มีปัญหาใด ๆ

0

บางครั้งแม้ว่าคุณจะเปลี่ยน.slnและ.csprojพา ธ และเปลี่ยนชื่อด้วยตนเองคุณอาจลืมตรวจสอบชื่อโฟลเดอร์ที่มีโครงการ

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