Файл проекту переміщено, перейменований або його немає на вашому комп’ютері


150

Я отримую цю помилку, коли намагаюся завантажити проект VS 2008 з управління джерелами TFS:

Файл проекту переміщено, перейменовано або його немає на вашому комп’ютері

Після натискання кнопки "ОК" проект каже "недоступний". В чому проблема? Як вирішити це? Я ніколи раніше не мав цієї проблеми. Деякі блоги заявляють про видалення .suo-файлу, але я не можу знайти. Я видалив весь проект на своєму локальному комп’ютері, так що наступного разу, коли він відкриється, він створить новий, але я все одно отримую таку ж помилку.


28
О, як я ненавиджу ТФС за те, що мені дають ці головні болі!
Джон Лейдегрен

2
Вниз, тут ви знайдете правильну відповідь.
Клавдій

Відповіді:


270

Що, як правило, допомагає виправити це - це видалення параметрів користувача Solution під назвою "SUO".

VS до 2013 року

У старшій VS він зберігається як "прихований" SolutionName.suoу тій же папці, що і основний .slnфайл.

VS2015 або пізнішої версії

У VS2015 ті самі дані були переміщені до «прихованої» .vsпапки під тією ж папкою, що і основний .slnфайл.


6
+1. Дуже прикро повідомлення про помилку - це на самому справі найбільш ймовірно виникає , коли ви перемістили файли «правильний» шлях в відповідно до вашим провайдером SCC. (наприклад, використання 'tf rename' для TFS) Переміщення проекту на диску без повідомлення TFS або забуття оновити файл sln / csproj призведе до мого досвіду різних повідомлень про помилки. Файли SUO непрозорі, тому вам залишається чесати голову, поки ви не зробите tfpt treeclean / scorch.
Річард Берг

8
Це врятує мені день;)
Каміль Лач

44
Не забудьте перезапустити Visual Studio після видалення файлу
.suo

8
Ой. Отже, файл .suo приховано. Чому? О, я знаю, чому. Ми розробники і, очевидно, не в змозі впоратися з додатковими труднощами, побачивши файл .suo у відкритому вигляді ;-)
Torben Rahbek Koch

29
Це також працює у Visual Studio 2015, хоча шлях до файлу .suo змінився на <SolutionFolder> \ .vs \ <SolutionName> \ v14 \ .suo.
Грег М.

38

Я просто зіткнувся з цим питанням за допомогою VS 2013 після перейменування проекту. Відповідь Стенлі орієнтувала мене на рішення:

Закрийте VS - видаліть .suo файл - запустіть VS заново.


1
Я можу помилитися, але не думаю, що навіть не бачив файл .SUO, поки не закрив VisualStudio.
Michael R

5
Просто хочу додати - обов'язково потрібно закрити VS перед тим, як видалити його. Видалення файлу, поки VS ще відкритий, закриття та повторне відкриття не має жодного ефекту. Потрібно спочатку закритися!
wizloc

23

Видаліть .suo-файл спеціальним способом.

  1. Не видаляйте рішення, коли ви видаляєте прихований файл .suo.
  2. Перезапустіть VisualStudio.
  3. Відкрийте рішення та додайте проект без повідомлення про помилку.

Працював для мене Visual Studio 2019. Тільки, що ви видалите приховану .vsпапку
user919426

11

TFS працює як і більшість пакетів керування джерелами: він запам'ятовує, що він поставив на ваш комп'ютер, так що коли ви "Отримаєте останню", він повинен отримувати лише канали з моменту останнього "Отримати", а не отримувати абсолютно все.

У цьому є одне застереження: Якщо ви видалите або перейменуєте локальні файли на своєму диску, TFS не дізнається, що ви зробили це, і все ще буде думати, що вони там, де вони їх залишили.

Якщо ви тоді "Отримати останнє", оновлення файлів, що відсутня, не буде перешкоджати.

Тоді ви, швидше за все, отримаєте всі види помилок "відсутній файл" від TFS та будь-яких інших інструментів, які шукають файли.

Щоб обійти його, потрібно:

  • Якщо ви думаєте, що там можуть бути якісь зміни, які ви не хочете втрачати, скопіюйте папку-джерело на своєму ПК як резервну копію про всяк випадок!
  • Клацніть правою кнопкою миші проект (у Solution Explorer) або папку (у контролі джерел)
  • У контекстному меню виберіть "Отримати конкретну версію"
  • Виберіть "Найновішу версію" і позначте опцію, яка говорить (щось на зразок) "примусово отримувати файли вже у вашій робочій області", що повідомляє TFS забути про те, що він "знає", і все-таки отримати всі файли знову.

Якщо у вас є будь-які файли, що змінюються локально (для запису), будьте обережні. Є другий варіант, який замінить їх, втрачаючи зміни. Але у вас є резервне копіювання, тож ви повинні бути в безпеці. Зазвичай краще позначити цю опцію, щоб переконатися, що весь ваш вихідний код повністю оновлений. (Але, очевидно, лише якщо ви не проти втратити будь-які локальні зміни!)

Коли ви все в порядку, це примусово передасть усі файли проекту на локальний диск, і це повинно усунути проблему.


Я "отримав конкретну версію" і поставив галочку "перезаписати всі файли, навіть якщо локальний сервер відповідності". жодних помилок, але нічого не ввійшло. Я перевірив на іншому комп'ютері, і проект знаходиться в TFS, і інша людина може добре працювати на ньому.
sineas

До речі, моя локальна папка джерела повністю ВИПУСНА. У цьому нічого немає. Спочатку я видалив усі файли, щоб я міг отримати всі нові. як відкриття абсолютно нового проекту.
sineas

1
У такому випадку наступне, що я перевірив би - це картографування вашої робочої області. У програмі Team Explorer двічі клацніть піктограму «Контроль джерела», а у верхній частині вікна, що з’являється, розташоване спадне поле. Опустіть це вниз і виберіть "додавання / редагування робочих просторів". Відредагуйте робочу область і переконайтеся, що проект TFS, що містить ваш код, має відповідну папку на локальному жорсткому диску. І переконайтеся, що ви переглядаєте цю папку, коли намагаєтеся завантажити рішення. (Підказка: Порівняйте налаштування з іншим розробником, який працює, щоб спробувати знайти джерело проблеми)
Джейсон Вільямс

9

Хоча це добре відомий дефект VS, напевно ми можемо впоратися з ним!

  • Відкрийте файл рішення в режимі редагування

  • Змініть відносний шлях, щоб він відповідав зміненому / переміщеному фізичному шляху.

    SccProjectUniqueName1 = Source\\Order\\Order.csproj
    SccProjectName1 = Order.ApplicationService
    SccLocalPath1 = Order.ApplicationService
    
  • Крім того, зробити правильний відносний шлях для проекту, що посилається

    Project("{asdasd-301F-11D3-BF4B-asdasd}") = "Order",
            "Source\Order\Order.csproj", "{E25641BC-C990-40E2-8876-08AE8728F763}"
    EndProject
    

6

Спробуйте відкрити .csproj або .vbproj замість .sln. Можливо, що. Сталося, що .sln (рішення) файл має абсолютне посилання на файл (замість відносного шляху) на проект (и) компонентів. Можливо, вам доведеться заново створити .sln або відредагувати його вручну.


Я намагався відкрити .vbproj файл, і ось що я отримую. "Вибраний файл не можна відкрити як рішення чи проект. Будь ласка, виберіть файл рішення чи файл проекту", також вкажіть, як відтворити .sln файл. Я новачок у цьому. дякую
sineas

Дякую! Відкрив файли csproj, при виході попросив створити / зберегти новий .sln файл та перезаписати старий!
Рафаель

5

Найпростіший для мене варіант:

  1. Клацніть правою кнопкою миші проект та видаліть проект "не завантажений" або "недоступний"
  2. Клацніть правою кнопкою миші рішення та додайте "Існуючий проект"

Я спробував цю, але все-таки ту саму помилку, не можу витримати цю дурну помилку (справді помилка, я не можу прийняти подібну неприємну помилку, надзвичайно заплутано).
Безнадійне

1
Простий і прямий ... зрозумів.
Сарат Мохандас

3

У моєму випадку видалення файлу .suo було недостатнім. Я виявив, що в моїй конфігурації робочої області сталася помилка. Я виявив і вирішив проблему за допомогою цих кроків:

  1. У Team Explorer "Керування робочими просторами ..."

    введіть тут опис зображення

  2. Натисніть "Редагувати ..."

    введіть тут опис зображення

  3. Виправте значення в розділі "Місцева папка"

    введіть тут опис зображення

  4. Нарешті, видаліть уражені файли .suo за прийнятою відповіддю.



1

Очистіть відображення робочої області (Файл -> Контроль джерела -> Робочі простори). Відредагуйте робочу область і очистіть усі відображення (більше наслідків) або знайдіть те, що пов’язане з цим сервером. Потім відкрийте Провідник управління джерелами та перезавантажте. Двічі клацніть на SLN в Explorer Explorer і він повинен отримати останню версію. Не зовсім впевнений, що сталося або в якому стані вам вдалося потрапити, але з цим ви повинні знов рухатися.


1

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


1

Я витратив чимало часу на спробу вирішити цю проблему. Я зробив ці кроки: перейменування проекту, перейменування просторів імен, перейменування папки проекту, редагування .sln-файлу, редагування прихованого .suo-файлу. Проект завантажений, але він був невпізнанним для TFS! Нарешті я знайшов це керівництво .

Якщо ви використовуєте Resharper, а TFVC є вашим контролем версій, виконайте наступні дії:

  • Клацніть правою кнопкою миші проект у Провіднику рішень, виберіть Перейменувати та введіть нову назву

  • Клацніть проект ще раз правою кнопкою миші та виберіть Властивості. Змініть "Назва збірки" та "Простір імен за замовчуванням" на вкладці "Програми".

  • Клацніть проект ще раз правою кнопкою миші та виберіть Рефактор -> Налаштувати простори імен. Прийміть зміни.

  • Змініть AssemblyTitle і AssemblyProduct у Властивості / AssemblyInfo.cs

  • Видалення каталогів bin та obj у Windows Explorer

  • Відкрийте Провідник управління джерелами та перейменуйте каталог проекту. Це закриє рішення. Нехай буде закритим.

  • Відкрийте файл SLN (з текстовим редактором, таким як Notepad ++) та змініть шлях до проекту (має бути кілька місць).

  • Відкрийте рішення ще раз. Очистіть і відновіть проект.


0

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

Доброта,

Ден


2
у вас немає параметра Правка. Єдиний проект перезавантажити, вирізати та видалити.
sineas

0

Рішення для цього

  1. Знову перейменуйте папку проекту
  2. Встановити конкретну версію та силу отримати в TFS
  3. видалити параметр лише для читання та приховання в останній папці (не перейменувати)
  4. Тепер ви можете відкрити проект без жодних питань

0

Іноді, навіть якщо ви змінили .slnі .csprojшлях, і перейменували вручну, ви можете забути перевірити ім'я папки, яка містить проект.

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