Visual Studio ดึงเส้นทางที่ไม่ถูกต้องไปยังโครงการจากที่ใดที่หนึ่ง


99

Visual Studio (และอาจเป็น TFS) ได้ (ฉันคิดว่าบางทีในระหว่างการผสานการควบคุมแหล่งที่มา) สับสนเกี่ยวกับเส้นทางของโครงการภายในโซลูชันของฉัน

คิดว่าอยู่ที่นี่ (ตัวอย่างเส้นทางเพื่อความเรียบง่าย):

C:\My Projects\ExampleSolution\ExampleProjectWrong\ExampleProjectCorrect.csproj

ในขณะที่ไฟล์โครงการอยู่ที่นี่:

C:\My Projects\ExampleSolution\ExampleProjectCorrect\ExampleProjectCorrect.csproj

ตลอดชีวิตของฉันไม่สามารถรับมันเพื่อรับรู้ตำแหน่งที่ถูกต้อง ฉันเหนื่อย:

  • การลบและเพิ่มโครงการใหม่จากตำแหน่งที่ถูกต้อง The project file at C:\My Projects\ExampleSolution\ExampleProjectWrong\ExampleProjectCorrect.csproj could not be foundข้อผิดพลาดขึ้นมาว่า

  • แก้ไขไฟล์. sln ด้วยตนเองเพื่อให้แน่ใจว่าการอ้างอิงทั้งหมดExampleProjectCorrect.csprojมีเส้นทางที่ถูกต้อง

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

  • การลบไดเรกทอรีแคชสำหรับ VS และ TFS

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

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


จะเกิดอะไรขึ้นถ้าคุณย้ายโปรเจ็กต์ไปยังไดเร็กทอรี ExampleProjectWrong
Hans Passant

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

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

2
ฉันมีปัญหาเดียวกันแน่นอน มันไม่ใช่เรื่องง่ายเหมือนการลบไฟล์ suo ฉันต้อง: 1. ลบโครงการที่กระทำผิดออกจากโซลูชัน 2. บันทึกโซลูชัน 3. ลบ. suo 4. เปิดโซลูชันและเพิ่มโครงการอีกครั้ง
SeanLAllen

1
การลบไฟล์ SUO ใช้ได้ผลกับฉัน
DanielV

คำตอบ:


96
  1. ไปที่จัดการพื้นที่ทำงาน (ผ่านเมนู File / Source Control หรือจากเมนูแบบเลื่อนลงพื้นที่ทำงานใน Source Control Explorer)
  2. เลือกแก้ไขสำหรับพื้นที่ทำงานของคุณ
  3. คุณควรเห็นภายใต้โฟลเดอร์ที่ใช้งานได้การแมปสำหรับไดเร็กทอรีคอนโทรลซอร์สไปยังไดเร็กทอรีโปรเจ็กต์เก่า / ไม่ถูกต้อง
  4. เลือกและคลิกลบ
  5. ปิด VS และลบไฟล์ suo

มันยังคงอ้างอิงไดเรกทอรีที่ไม่ถูกต้อง บางทีการ rebinding อาจได้ผลในตอนนี้ แต่ฉันไม่ได้ลอง โหลดโครงการของคุณใหม่และคุณควรจะไป


1
นอกจากนี้อย่าหลงกลโดยลิงค์พา ธ ภายในเครื่องใน explorer ตัวควบคุมแหล่งที่มา ฉันมีการแมปมากกว่าหนึ่งรายการสำหรับพื้นที่ทำงานของฉันและมันแสดงให้เห็นว่าฉันคาดหวังอะไรที่นั่น แต่เมื่อพยายามโหลดโครงการมันกำลังใช้เส้นทางอื่น
Benjamin Potts

1
ไฟล์. suo ถูกซ่อนไว้ดังนั้นคุณต้องเปิดใช้งานตัวเลือก "แสดงไฟล์และโฟลเดอร์ทั้งหมด"
ANIL MANE

8
ใน Visual Studio 2015 ฉันพบข้อผิดพลาดเดียวกัน สิ่งที่ได้ผลสำหรับฉันคือการลบไดเรกทอรี. vs ที่ซ่อนอยู่และไฟล์. suo ด้วย
Daniel Leiszen

5
สำหรับ VS2015 .suoไฟล์ของคุณอาจไม่ใช่ที่ที่คุณคิด ลบหนึ่งที่ชีวิตข้างของคุณ.slnไฟล์ (ไม่ลืมที่จะ "แสดงไฟล์ที่ซ่อนอยู่") .\.vs\[solution_name]\v14\.suoและนอกจากนี้ยังมีหนึ่งหลบซ่อนตัวอยู่ในไดเรกทอรีย่อยที่ เมื่อได้ทั้งสองอย่างแล้วก็สามารถเพิ่มโปรเจ็กต์ได้อีกครั้ง อ๊ะ - เครดิตบางส่วนสำหรับ @DanielLeiszen (เพิ่งสังเกตเห็นว่าเขาแสดงความคิดเห็นในสิ่งเดียวกัน)
Richard Hauer

1
ฉันต้องลบไฟล์. suo และรีสตาร์ท VS เพื่อความมีสติที่จะเหนือกว่า
Appulus

33

เพียงแค่ลบ.suoไฟล์โซลูชันได้ผลสำหรับฉัน


5
ใน VS2015 ฉันจำเป็นต้องปิดอินสแตนซ์ Visual Studio ทั้งหมดก่อนที่จะลบ<SolutionDir>\.vs\<SolutionName>\<VsVersion>\.suoได้ผลสำหรับฉัน
GraehamF

12

ฉันประสบปัญหานี้หลังจากทำการย้ายข้อมูลจาก Visual Source Safe 2005 เป็น TFS 2012 ฉันไม่สามารถรอ "ตัวช่วยสร้างการแปลง" ที่จะครบกำหนดในอีกสองสามสัปดาห์ข้างหน้าดังนั้นฉันจึงเรียกใช้ VSSConvert.exe สิ่งนี้ใช้เวลา 6 ปีหรือมากกว่านั้นในประวัติศาสตร์และย้ายไปที่ TFS .. ในขณะที่ฉันไม่ได้รับประวัติไทม์ไลน์ที่แท้จริง .. ฉันได้รับหลายรายการในวันเดียวกันพร้อมกับความคิดเห็นที่ระบุการเช็คอินจริงของประวัติ . ไม่เลว.

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

ในที่สุด ... ฉันลบไฟล์* .suoและวิโอล่า มันได้ผล

ฉันใช้เวลาสองสามชั่วโมงกับสิ่งนี้


2
ก่อนที่คุณจะลบไฟล์ * .suo ตรวจสอบให้แน่ใจว่าได้ปิดอินสแตนซ์ Visual Studio ทั้งหมดแล้วเปิดโซลูชันอีกครั้ง
Mas

5

วิธีแก้ปัญหาที่แตกต่างกันเล็กน้อย

TFS กำลังแสดงพา ธ ที่ไม่มีอยู่สำหรับโซลูชันเฉพาะ ก่อนหน้านี้ฉันมีแล็ปท็อปที่มีไดรฟ์ D: แยกต่างหาก แต่ตอนนี้ฉันมีไดรฟ์ C: TFS ยังคงคิดว่าโครงการของฉันถูกเก็บไว้ใน D: \ Project \ MikesProject

ฉันไม่มี.suoไฟล์ที่จะลบเส้นทาง D: ไม่ได้กล่าวถึงที่ใดในพื้นที่ทำงานของฉัน (ฝังอยู่ใต้File\Source Control\Advanced\Workspacesเมนู) TFS แสดงให้เห็นว่าฉันมีไฟล์ล่าสุดใน (ไม่มีอยู่แล้ว) D: ไดเร็กทอรีและ TFS ใน VS2013 ไม่มีตัวเลือก "Remove Mappings" สำหรับโปรเจ็กต์นี้

แต่สิ่งที่ได้ผลคือเพียงแค่ทำ "รับเวอร์ชันล่าสุด" ในโครงการ

หลังจากทำเช่นสำเนาสดของรหัสที่ถูกเขียนขึ้นเพื่อฉัน C: ไดรฟ์และ (น่าสนใจ) ตอนนี้เส้นทางท้องถิ่นถูกนำมาแสดงที่ขีดเส้นใต้

ก่อนหน้านี้เส้นทาง D: ไม่แสดงเช่นนี้

แปลก แปลกมาก.


2
สถานการณ์เดียวกันสำหรับฉัน ฉันลังเลที่จะเหนี่ยวไกและ "รับข้อมูลล่าสุด" เนื่องจากเส้นทางที่ไม่ถูกต้อง แต่ @Mike ให้ความกล้า!
Jonathan

2

เรามีปัญหาคล้ายกันกับการย้ายและการเปลี่ยนชื่อ การลบไดเรกทอรีภายในเครื่องแล้วทำการแก้ไขอีกครั้ง


2

แม้ว่าจะลบ.suoไฟล์และ.vsโฟลเดอร์ไปแล้วฉันก็ต้องแก้ไข.slnไฟล์และลบ url สัมพัทธ์เก่าออกSccProjectName#แม้ว่าจะSccLocalPath#ถูกต้องก็ตาม เห็นได้ชัดว่า VS ยังใช้ชื่อเป็นเส้นทางคำใบ้


1

ลองลบหรือเปลี่ยนชื่อไฟล์. suo (รวมนามสกุลด้วย) ไฟล์นี้อยู่ในตำแหน่งเดียวกับที่ไฟล์โซลูชันของคุณอยู่ มันได้ผลสำหรับฉัน


0

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


ขอบคุณสำหรับการตอบกลับ โครงการไม่ได้อ้างอิงจากโครงการอื่นใดภายในโซลูชัน คุณช่วยอธิบายได้ไหมว่าเหตุใดการค้นหาในไฟล์จึงไม่ทำงาน จากประสบการณ์ของฉันถ้าคุณให้พา ธ ไดเร็กทอรีไปที่ 'Look in' แทนที่จะเลือก 'Entire Solution' มันจะค้นหาไฟล์ทุกประเภทเว้นแต่จะได้รับคำสั่งให้ค้นหาเฉพาะไฟล์บางประเภทเท่านั้น?
Charlie Drewitt

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

0

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


0

ฉันเปิดโซลูชันเว็บไซต์ asp.net จากสาขา Dev จากนั้นเพื่อจุดประสงค์อื่นฉันเปิดโซลูชันเดียวกันจากสาขาหลัก

ฉันทำการเปลี่ยนแปลงไฟล์. ascx.cs ของฉันในสาขา dev และตั้งค่าเบรกพอยต์ เมื่อฉันรันดีบั๊กจุดพักทั้งหมดของฉันถูกตีใน Dev Branch ยกเว้น. ascx.cs ที่กดปุ่ม Main branch ยังไม่ได้คิด

พยายามทำความสะอาดโฟลเดอร์ชั่วคราว แต่ไม่ได้ผล

อะไรได้ผล:

ปิด Visual Studio ทุกอินสแตนซ์

เปิดโซลูชันจากสาขา Dev อีกครั้ง

เรียกใช้อีกครั้งและจุดพักเริ่มตี


0

ในกรณีของฉันฉันคัดลอกไฟล์ * .sln ลงในโฟลเดอร์โปรเจ็กต์และเปลี่ยนพา ธ ไปยังโปรเจ็กต์ลงในไฟล์ * .sln เพียงเท่านี้ก็สามารถแก้ปัญหาได้แล้ว (เทียบกับ 2015 sp1, winservise project)

ลบ * .suo ไม่ได้ช่วยอะไรสำหรับฉัน


0

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


-1

หากคุณใช้งานเว็บแอปภายใต้ Local IIS แทน IISExpress ให้แน่ใจว่าคุณกดปุ่ม "Create Virtual Directory" โดยไปที่คุณสมบัติโครงการ เมื่อเสร็จแล้วให้ดำเนินการ "Clean Solution" และ "Rebuild Solution"



-3

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


สิ่งนี้ไม่ได้ให้ความช่วยเหลือใด ๆ สำหรับคำถามเริ่มต้น
vlad_tepesch

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