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 ответов
- Перейдите в раздел "Управление рабочими областями" (либо через меню "Управление файлами / исходным кодом", либо из раскрывающегося списка рабочих пространств в Source Control Explorer)
- выберите редактировать для вашего рабочего пространства.
- В рабочих папках вы должны увидеть сопоставление каталога управления исходным кодом со старым / неправильным каталогом проекта.
- Выберите его и нажмите удалить.
- Закройте VS и удалите файл 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.
Запустите снова, и точки разрыва начали бить.
Если вы запускаете свое веб-приложение под локальным IIS вместо IISExpress, убедитесь, что вы нажимаете кнопку "Создать виртуальный каталог", перейдя в свойствах проекта. После этого выполните "Чистое решение" и "Восстановить решение".
Я знаю, что это старая линия. Я только что прошел через ту же проблему. Недавно мы перенесли TFS, поэтому я создал новое рабочее пространство для сопоставления с новым сервером и сохранил старый. Каждый раз, когда я открываю решение, которое должно быть нацелено на мое новое рабочее пространство, VS всегда пытался загрузить проекты из моего старого каталога отображения, пока я не удалил свое старое рабочее пространство.