Візуальна студія, яка виводить звідкись неправильний шлях до проекту


98

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?
Ганс Пасант

Гаразд, деякий прогрес .. Переміщення його в неправильну папку дозволяє завантажити його у візуальну студію. Я не можу зберігати його там, оскільки каталог "ExampleProjectWrong" є домом для іншого проекту, що містить майже ту саму структуру папок. Отже, будь-які ідеї, як іти про зміну шляху проекту, зараз я його завантажую? Поле шляху у властивостях незавантаженого проекту недоступне, навіть коли проект завантажений?
Чарлі Дрюітт

3
Цю проблему я отримав уже вдруге, але цього разу мені вдалося зрозуміти, що розгалужений проект орієнтований на оригінальну папку, оскільки я використовую різні рядки з'єднання. Це було дуже дивно в перший раз, викликаючи налагодження Visualstudio у файлах із вихідної папки та змішування його з файлами з гілки, і навіть Log4net увійшов до вихідної папки! Чи видалити рішення власною ініціативою файл і тепер коректно доступ тільки розгалуженими файли.
Binke

2
У мене була точно така ж проблема. Це було не так просто, як просто видалення файлу suo. Мені довелося: 1. Вилучити проект з порушенням. 2. Збережіть рішення. 3. Видаліть .suo 4. Відкрийте рішення та повторно додайте проект.
SeanLAllen

1
Видалення файлу SUO працювало для мене.
DanielV

Відповіді:


96
  1. Перейдіть до " Керування робочими просторами" (через меню Файл / Контроль джерела або в робочому просторі, що випадає в Провіднику управління джерелами)
  2. виберіть редагування для робочої області.
  3. Під робочими папками ви повинні бачити зіставлення каталогу каталогів джерела зі старим / неправильним каталогом проектів.
  4. Виберіть його та натисніть кнопку Видалити .
  5. Закрийте VS та видаліть файл suo.

Він все ще посилається на неправильний каталог. Можливо, перезавантаження може спрацювати в цей момент, але я цього не пробував. Перезавантажте свій проект, і вам слід добре поїхати.


1
Крім того, не обманюйте локальну посилання шляху в Explorer Explorer. У мене було більше одного картографування для мого робочого простору, і воно показувало, що я там очікував, але коли він намагався завантажити проект, він використовував інший шлях.
Бенджамін Поттс

1
.suo-файл прихований, тому вам потрібно включити опцію "показати всі файли та папки"
ANIL MANE

8
У Visual Studio 2015 я зазнав тієї ж помилки. Що для мене працювало - видалити прихований каталог .vs та файл .suo.
Даніель Лейзен

5
Для VS2015 ваш .suoфайл може бути не там, де ви думаєте. Видаліть той, який знаходиться поруч з вашим .slnфайлом (не забудьте "показати приховані файли"), а також є один схований у підкаталозі на .\.vs\[solution_name]\v14\.suo. Як тільки я отримав обох, я міг знову додати проект. На жаль - часткова заслуга @DanielLeiszen (щойно помітив, що він прокоментував те саме)
Річард Хауер

1
Мені довелося видалити .suo-файл і перезапустити VS, щоб
здоровість

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, а потім знову відкрийте рішення.
Мас

5

Трохи інше рішення.

TFS відображав неіснуючий шлях для конкретного рішення. Раніше у мене був ноутбук з окремим D: накопичувачем, але зараз у мене просто привід C:. TFS все ще вважав, що мій проект зберігається в D: \ Project \ MikesProject

У мене не було .suoфайлу для видалення, шлях D: ніде в моїх робочих просторах не згадувався (закопаний під File\Source Control\Advanced\Workspacesменю), TFS показав, що в мене є останні файли в моєму (вже не існуючому) D: каталогу та TFS у VS2013 для цього проекту не було опції «Видалити відображення».

Але то , що зробив роботу було просто зробити «Отримати останню версію» за проектом.

Після цього свіжа копія коду була написана на мій диск C: і, що цікаво, тепер Локальний шлях показано підкресленим .

Раніше шлях D: не відображався таким.

Незвичайно. Дуже дивно.


2
Точно така ж ситуація і для мене. Я вагався, як натиснути на спусковий гачок і "Отримати останнє" через той неправильний шлях, але @Mike дав мені мужності!
Джонатан

2

У нас були подібні проблеми з рухами та перейменовуванням. Видалення локальних каталогів, а потім знову їх вирішення.


2

Навіть після видалення .suoфайлу та .vsпапок мені довелося відредагувати .slnфайл та видалити старий відносний URL-адрес, SccProjectName#незважаючи на SccLocalPath#те, що він правильний. Мабуть, VS також використовує ім'я як шлях підказки.


1

Спробуйте видалити або перейменувати .suo файл (включаючи розширення). Цей файл знаходиться там же, де знаходиться файл вашого рішення. Це працювало для мене.


0

Просто здогадуєтесь, але, можливо, деякі інші проекти посилаються на ваш проект із неправильного місця? У цьому випадку вам потрібно не просто видалити та повторно вставити проект у своє рішення, також вам доведеться видалити та відтворити посилання з референтних проектів (зберігаються у файлах .csproj).


дякую за відповідь. проект не посилається на жоден інший проект в рамках рішення. Ви можете пояснити, чому пошук у файлах не працює? на моєму досвіді, якщо ви дасте йому шлях до каталогу до "Заглянути", замість вибору "Ціле рішення" він шукатиме всі типи файлів, якщо спеціально не вказано лише пошук певних типів файлів?
Charlie Drewitt

Вибачте, ви праві, я думав, що ви використовуєте "Знайти у файлах" лише для файлів у рішенні, а не для каталогу рішень, я це пропустив. Тож має працювати. Чи можете ви дати більш детальний опис, коли саме з'явиться повідомлення про помилку? Чи виникає це під час компіляції, тож ви можете бачити, який збір проекту не вдався?
Док Браун

0

Спробувавши багато рекомендацій, я видалив файл suo (знову). Останній раз працював. Чому це не спрацювало раніше, я не знаю. Як правило, я вважаю, що видалення файлу suo є одним з перших кроків, які я роблю.


0

У мене було відкрито рішення щодо веб-сайту asp.net із відділення Dev. Тоді з якоюсь іншою метою я відкрив те саме рішення з головного відділення.

Я змінив один із моїх файлів .ascx.cs у гілці розробника та встановив межу розриву. Коли я запустив налагоджувач, усі мої точки перелому потрапили у відділення Dev, за винятком .ascx.cs, який потрапляв у головну гілку. Не маю уявлення.

Спробували очистити тимчасову папку, але не вийшло.

Що працювало:

Закрито всі екземпляри Visual Studio

Знову відкрили рішення з відділення Dev.

Повторіть, і точки перерви почали вражати.


0

У моєму випадку я скопіював файл * .sln у папку проекту та змінив шлях до проекту у файл * .sln. Тільки це вирішило проблему (проти 2015 sp1, проект winservise).

Видалити * .suo мені не допомагає.


0

Ще одне рішення спрацювало для нас - після спробу видалення suo і майже всього, що згадується в цій темі. У нас у проекті був проект, який демонстрував привидну версію файлу csproj. Ми видалили цей файл і наші контури були зафіксовані на іншому проекті, який ми намагалися додати.


-1

Якщо ви запускаєте веб-додаток під Local IIS замість IISExpress, переконайтесь, що ви HIT на кнопку "Створити віртуальний каталог", перейшовши у властивості проекту. Після цього виконайте "Чистий розчин" та "Поновіть рішення".



-3

Я знаю, що це стара лінія. Я просто пережив ту саму проблему. Нещодавно ми перенесли TFS, тому я створив нову робочу область для відображення нового сервера та зберег старий. Кожен раз, коли я відкривав рішення, яке повинно бути орієнтованим на мою нову робочу область, VS завжди намагався завантажувати проекти зі свого старого каталогу відображення, поки я не видалив стару робочу область.


це насправді не допомагає первинному питанню
vlad_tepesch

Я думав, що моє питання має таку ж природу. У мене було два робочих місця, одне з яких є старим. Я працював у рамках нового, створив рішення, додав проекти. все добре, лише якщо я не закрив рішення. Але якщо я врятував рішення і намагався його відкрити, VS завжди намагався завантажити проекти в рішення з каталогу, зібраного в моїй старій робочій області.
BackToSorrento
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.