Visual Studio извлекает неправильный путь к проекту откуда-то

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 проектов и связано с контролем версий с несколькими другими разработчиками, работающими над ним.

Кто-нибудь может указать мне правильное направление относительно того, где он хранит этот неправильный путь и / или как сбросить его так, чтобы эта чертова вещь загружалась правильно?

13 ответов

Решение
  1. Перейдите в раздел "Управление рабочими областями" (либо через меню "Управление файлами / исходным кодом", либо из раскрывающегося списка рабочих пространств в Source Control Explorer)
  2. выберите редактировать для вашего рабочего пространства.
  3. В рабочих папках вы должны увидеть сопоставление каталога управления исходным кодом со старым / неправильным каталогом проекта.
  4. Выберите его и нажмите удалить.
  5. Закройте VS и удалите файл suo.

Это все еще ссылается на неправильный каталог. Возможно повторное связывание может сработать на этом этапе, но я не пробовал это. Перезагрузите свой проект, и вы должны быть готовы к работе.

Просто удаляя решения .suo файл работал на меня.

Я столкнулся с этой проблемой после выполнения перехода с Visual Source Safe 2005 на TFS 2012. Я не мог дождаться появления "Мастера конвертации" в ближайшие пару недель, поэтому я просто запустил VSSConvert.exe. Это заняло около 6 лет истории и переместило ее в TFS... в то время как я не получил реальную историю графика времени... Я получил кучу записей в тот же день с комментариями, указывающими фактическую регистрацию истории.. неплохо.

Поэтому после того, как он работал всю ночь (успешно, ууу!), У меня возникли проблемы с загрузкой моих проектов, как и был задан этот вопрос. По некоторым причинам несколько проектов ссылались на неправильный каталог. Я проверил файлы.sln,.vsproj и получил последнюю версию, удалив повторное получение, добавив удаление и т. Д. Я перепробовал все, что было здесь замечено... даже обновляя свое рабочее пространство, что я не уверен, что это даже сделало.

НАКОНЕЦ... Я удалил файлы *.suo и альт. Это сработало.

Я провел пару часов на этом.

Немного другое решение.

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

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

Но то, что сработало, - это просто сделать "Получить последнюю версию" в проекте.

После этого свежая копия кода была записана на мой диск C: и (что интересно), теперь локальный путь был показан подчеркнутым.

Ранее путь D: не показывался таким образом.

Странный. Очень странно.

У нас были похожие проблемы с переездами и переименованиями. Удаление локальных каталогов, а затем получение снова решил эту проблему.

Даже после удаления .suo файл и .vs папки, мне пришлось редактировать .sln файл и удалить старый относительный URL из SccProjectName# несмотря на SccLocalPath# быть правильным. Очевидно, VS также использует имя в качестве пути подсказки.

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

Просто угадайте, но, может быть, некоторые другие ваши проекты ссылаются на ваш проект не из того места? В этом случае вам нужно не просто удалить и повторно вставить проект в ваше решение, вы также должны будете удалить и воссоздать ссылки из ссылочных проектов (хранящиеся в их файлах.csproj).

В моем случае я скопировал файл *.sln в папку проекта и изменил путь к проекту в файл *.sln. Только это решило проблему (vs 2015 sp1, проект winservise).

Удалить *.suo мне не помогает.

Перепробовав много рекомендаций, я удалил файл suo (снова). В прошлый раз работал. Почему это не сработало раньше, я не знаю. В общем, я считаю удаление файла suo одним из первых шагов, которые я делаю.

Еще одно решение сработало для нас - после попытки удалить suo и почти все, что упоминается в этой теме. У нас был проект в решении, который показывал призрачную версию файла csproj. Мы удалили этот файл, и наши пути исправлены в другом проекте, который мы пытались добавить.

У меня открылось решение для моего сайта asp.net из моей ветки разработчиков. Затем для какой-то другой цели я открыл то же решение из главной ветки.

Я внес изменение в один из моих файлов.ascx.cs в ветке dev и установил точку останова. Когда я запускал отладчик, все мои точки останова попадали в ветку Dev, за исключением.ascx.cs, который попадал в ветку Main. Понятия не имею.

Пробовал чистить временную папку, но не работал.

Что сработало:

Закрыты все экземпляры Visual Studio

Снова открыл решение из ветки Dev.

Запустите снова, и точки разрыва начали бить.

Удаление файлов obj и bin решило бы проблему...

Если вы запускаете свое веб-приложение под локальным IIS вместо IISExpress, убедитесь, что вы нажимаете кнопку "Создать виртуальный каталог", перейдя в свойствах проекта. После этого выполните "Чистое решение" и "Восстановить решение".

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

Другие вопросы по тегам