it-roy-ru.com

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

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

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

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

90
Benjamin Potts

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

30
ThePower

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

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

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

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

12
hanzolo

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

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

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

Но работа did заключалась в том, чтобы просто сделать «Get последнюю версию» в проекте.

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

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

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

5
Mike Gledhill

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

2
Tony Hopkinson

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

1
Mandeep Janjua

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

1
Adam

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

0
user3097514

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

0
Ajinkya Surve

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

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

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

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

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

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

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

0
gbs

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

0
Doc Brown

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

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

0
Kamerton