Die Projektdatei wurde umbenannt oder befindet sich nicht auf Ihrem Computer


150

Ich erhalte diese Fehlermeldung, wenn ich versuche, ein VS 2008-Projekt aus der TFS-Quellcodeverwaltung zu laden:

Die Projektdatei wurde verschoben, umbenannt oder befindet sich nicht auf Ihrem Computer

Nachdem ich auf OK geklickt habe, sagt das Projekt "nicht verfügbar". Was ist das Problem? Wie löse ich das? Ich hatte dieses Problem noch nie zuvor. Einige Blogs sagten, sie sollten die .suo-Datei löschen, aber ich kann die .suo-Datei nicht finden. Ich habe das gesamte Projekt auf meinem lokalen Computer gelöscht, damit beim nächsten Öffnen ein neues erstellt wird, aber ich erhalte immer noch den gleichen Fehler.


28
Oh, wie ich TFS hasse, weil es mir diese Kopfschmerzen bereitet!
John Leidegren

2
Geh runter, hier findest du die richtige Antwort.
Claudius

Antworten:


270

Was normalerweise zur Behebung beiträgt, ist das Löschen der Lösungsbenutzeroptionen, auch bekannt als "SUO".

VS bis 2013

Im älteren VS wird es als "versteckt" SolutionName.suoim selben Ordner wie die Hauptdatei .slngespeichert.

VS2015 oder höher

In VS2015 wurden dieselben Daten in einen "versteckten" .vsOrdner unter demselben Ordner wie die Hauptdatei verschoben .sln.


6
+1. Sehr unglückliche Fehlermeldung - es tritt tatsächlich am wahrscheinlichsten auf, wenn Sie die Dateien gemäß Ihrem SCC-Anbieter auf die "richtige" Weise verschoben haben. (z. B. Verwenden von 'tf rename' für TFS) Das Verschieben des Projekts auf die Festplatte ohne Angabe von TFS oder das Vergessen, eine sln / csproj-Datei zu aktualisieren, führt meiner Erfahrung nach zu unterschiedlichen Fehlermeldungen. SUO-Dateien sind undurchsichtig, sodass Sie sich am Kopf kratzen müssen, bis Sie einen tfpt-Baumreinigungs- / Scorch-Vorgang ausführen.
Richard Berg

8
Es rettet meinen Tag;)
Kamil Lach

44
Vergessen Sie nicht, Visual Studio nach dem Löschen der .suo-Datei neu zu starten
orandov

8
Oh. Jetzt ist die .suo-Datei ausgeblendet. Warum? Oh, ich weiß warum. Wir sind Entwickler und offensichtlich nicht in der Lage, die zusätzliche Komplexität zu bewältigen, wenn wir die .suo-Datei im Freien sehen ;-)
Torben Rahbek Koch

29
Dies funktioniert auch in Visual Studio 2015, obwohl der Pfad zur .suo-Datei in <Lösungsordner> \ .vs \ <Lösungsname> \ v14 \ .suo geändert wurde.
Greg M.

38

Ich bin gerade mit VS 2013 auf dieses Problem gestoßen, nachdem ich ein Projekt umbenannt habe. Stanleys Antwort führte mich zur Lösung:

VS schließen - .suo-Datei löschen - VS erneut starten.


1
Ich könnte mich irren, aber ich glaube nicht, dass ich die .SUO-Datei gesehen habe, bis ich VisualStudio geschlossen habe.
Michael R

5
Ich möchte nur hinzufügen - unbedingt, dass Sie VS schließen, bevor Sie es löschen. Das Löschen der Datei, während VS noch geöffnet ist, das anschließende Schließen und erneute Öffnen hat KEINE Auswirkung. Muss zuerst schließen!
Wizloc

23

Löschen Sie die .suo-Datei auf besondere Weise.

  1. Öffnen Sie die Lösung nicht, wenn Sie die versteckte .suo-Datei löschen.
  2. Starten Sie VisualStudio neu.
  3. Lösung öffnen und Projekt ohne Fehlermeldung hinzufügen.

Arbeitete für mich Visual Studio 2019. Nur dass Sie den versteckten .vsOrdner löschen
user919426

11

TFS funktioniert wie die meisten Versionsverwaltungspakete: Es merkt sich, was es auf Ihrem Computer gespeichert hat, sodass beim "Abrufen der neuesten Version" nur die Änderungen seit Ihrem letzten "Abrufen" abgerufen werden müssen, anstatt absolut alles abrufen zu müssen.

Dies hat eine Einschränkung: Wenn Sie die lokalen Dateien auf Ihrer Festplatte löschen oder umbenennen, weiß TFS nicht, dass Sie dies getan haben, und es wird immer noch denken, dass sie dort sind, wo sie sie hinterlassen haben.

Wenn Sie dann "Neueste abrufen", wird es nicht die Mühe machen, die fehlenden Dateien zu aktualisieren.

Sie werden dann wahrscheinlich alle Arten von "fehlenden Datei" -Fehlern von TFS und anderen Tools erhalten, die nach den Dateien suchen.

Um es zu umgehen, müssen Sie:

  • Wenn Sie glauben, dass Sie dort Änderungen haben, die Sie nicht verlieren möchten, kopieren Sie den Quellordner als Backup für alle Fälle auf Ihren PC!
  • Klicken Sie mit der rechten Maustaste auf das Projekt (im Projektmappen-Explorer) oder den Ordner (in der Quellcodeverwaltung).
  • Wählen Sie "Get Specific Version" aus dem Kontextmenü
  • Wählen Sie die "Neueste Version" und aktivieren Sie die Option "Erzwingen des Abrufs von Dateien, die sich bereits in Ihrem Arbeitsbereich befinden", wodurch TFS angewiesen wird, das "Wissen" zu vergessen und trotzdem alle Dateien erneut abzurufen.

Wenn Sie lokal geänderte (beschreibbare) Dateien haben, seien Sie vorsichtig. Es gibt eine zweite Option, die diese überschreibt und Ihre Änderungen verliert. Aber Sie haben das Backup, also sollten Sie sicher sein. Im Allgemeinen ist es auch besser, diese Option anzukreuzen, um sicherzustellen, dass Ihr gesamter Quellcode vollständig auf dem neuesten Stand ist. (Aber natürlich nur, wenn es Ihnen nichts ausmacht, lokale Änderungen zu verlieren!)

Wenn Sie in Ordnung sind, werden alle Dateien im Projekt zwangsweise auf Ihr lokales Laufwerk übertragen, und das Problem sollte behoben werden.


Ich habe "bestimmte Version erhalten" und aktiviert "Alle Dateien überschreiben, auch wenn lokaler Match-Server". Keine Fehler, aber es ist nichts eingegangen. Ich habe von einem anderen Computer aus nachgesehen und das Projekt ist in TFS und die andere Person kann gut daran arbeiten.
Sineas

Übrigens ist mein lokaler Quellordner völlig leer. Da ist nichts drin. Ich habe anfangs alle Dateien gelöscht, damit ich alle neuen bekommen kann. wie ein brandneues Projekt zu eröffnen.
Sineas

1
In diesem Fall würde ich als nächstes Ihre Arbeitsbereichszuordnung überprüfen. Doppelklicken Sie im Team Explorer auf das Quellcodeverwaltungssymbol. Oben im angezeigten Fenster befindet sich ein Dropdown-Kombinationsfeld. Lassen Sie dies fallen und wählen Sie "Arbeitsbereiche hinzufügen / bearbeiten". Bearbeiten Sie Ihren Arbeitsbereich und überprüfen Sie, ob das TFS-Projekt, das Ihren Code enthält, einen entsprechenden Ordner auf Ihrer lokalen Festplatte hat. Stellen Sie sicher, dass Sie sich diesen Ordner ansehen, wenn Sie versuchen, die Lösung zu laden. (Hinweis: Vergleichen Sie Ihr Setup mit dem des anderen Entwicklers, der versucht, die Ursache des Problems zu ermitteln.)
Jason Williams

9

Obwohl es ein bekannter VS-Defekt ist, können wir ihn definitiv behandeln!

  • Öffnen Sie die Lösungsdatei im Bearbeitungsmodus

  • Ändern Sie den relativen Pfad so, dass er mit dem geänderten / verschobenen physischen Pfad übereinstimmt.

    SccProjectUniqueName1 = Source\\Order\\Order.csproj
    SccProjectName1 = Order.ApplicationService
    SccLocalPath1 = Order.ApplicationService
    
  • Stellen Sie außerdem sicher, dass der relative Pfad für die verweisenden Projekte korrekt ist.

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

6

Versuchen Sie, .csproj oder .vbproj anstelle von .sln zu öffnen. Was wahrscheinlich passiert ist, ist, dass die .sln-Datei (Lösungsdatei) einen absoluten Dateiverweis (anstelle eines relativen Pfads) auf die entsprechenden Projekte hat. Möglicherweise müssen Sie die SLN-Datei neu erstellen oder von Hand bearbeiten.


Ich habe versucht, die .vbproj-Datei zu öffnen, und das ist, was ich bekomme. "Die ausgewählte Datei kann nicht als Lösung oder Projekt geöffnet werden. Bitte wählen Sie eine Lösungsdatei oder eine Projektdatei aus." Geben Sie auch an, wie die SLN-Datei neu erstellt werden soll. Ich bin neu in diesem Bereich. danke
sineas

Vielen Dank! Öffnete die csproj-Dateien, forderte sie beim Beenden auf, eine neue .sln-Datei zu erstellen / speichern und die alte zu überschreiben!
Rafael

5

Die einfachste Option, die für mich ausgearbeitet wurde, ist:

  1. Klicken Sie mit der rechten Maustaste auf das Projekt und entfernen Sie das Projekt "nicht geladen" oder "nicht verfügbar"
  2. Klicken Sie mit der rechten Maustaste auf die Lösung und fügen Sie "Vorhandenes Projekt" hinzu.

Ich habe dies versucht, aber immer noch den gleichen Fehler, kann diesen dummen Fehler nicht ertragen (wirklich ein Fehler, ich kann diese Art von bösem Fehler nicht akzeptieren, extrem verwirrend).
Hoffnungslos

1
Einfach und direkt ... verstanden.
Sarath Mohandas

3

In meinem Fall war das Löschen der .suo-Datei nicht ausreichend. Ich habe festgestellt, dass in meiner Arbeitsbereichskonfiguration ein Fehler aufgetreten ist. Ich habe das Problem mit den folgenden Schritten entdeckt und gelöst:

  1. Im Team Explorer wird "Arbeitsbereiche verwalten ..."

    Geben Sie hier die Bildbeschreibung ein

  2. Klicken Sie auf "Bearbeiten ..."

    Geben Sie hier die Bildbeschreibung ein

  3. Korrigieren Sie den Wert unter "Lokaler Ordner"

    Geben Sie hier die Bildbeschreibung ein

  4. Löschen Sie abschließend die betroffenen .suo-Dateien gemäß der akzeptierten Antwort.


2

Ich fand es am einfachsten, eine neue Solution SLN-Datei zu erstellen.


1

Löschen Sie Ihre Arbeitsbereichszuordnungen (Datei -> Quellcodeverwaltung -> Arbeitsbereiche). Bearbeiten Sie den Arbeitsbereich und löschen Sie entweder alle Zuordnungen (weitere Auswirkungen) oder suchen Sie die Zuordnung, die diesem Serverpfad zugeordnet ist. Öffnen Sie dann den Quellcodeverwaltungs-Explorer und ordnen Sie ihn neu zu. Doppelklicken Sie im Versionsverwaltungs-Explorer auf die SLN, um die neueste Version zu erhalten. Ich bin mir nicht ganz sicher, was passiert ist oder in welchen Zustand du gekommen bist, aber damit solltest du dich wieder bewegen.


1

Ich bin auf dieses Problem gestoßen und konnte es beheben, indem ich die .rptprojDateien von einem Kollegen abgerufen und in mein lokales Verzeichnis kopiert habe. Das Projekt konnte dann neu geladen werden.


1

Ich habe viel Zeit damit verbracht, dieses Problem zu lösen. Ich habe die folgenden Schritte ausgeführt: Projekt umbenennen, Namespaces umbenennen, Projektordner umbenennen, SLN-Datei bearbeiten, versteckte SUO-Datei bearbeiten. Projekt geladen, aber für TFS nicht erkennbar! Endlich habe ich diesen Leitfaden gefunden .

Wenn Sie Resharper verwenden und TFVC Ihre Versionskontrolle ist, gehen Sie folgendermaßen vor:

  • Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, wählen Sie Umbenennen und geben Sie den neuen Namen ein

  • Klicken Sie erneut mit der rechten Maustaste auf das Projekt und wählen Sie Eigenschaften. Ändern Sie den "Assembly-Namen" und den "Standard-Namespace" auf der Registerkarte "Anwendung".

  • Klicken Sie erneut mit der rechten Maustaste auf das Projekt und wählen Sie Refactor -> Namespaces anpassen. Akzeptieren Sie die Änderungen.

  • Ändern Sie den AssemblyTitle und das AssemblyProduct in Properties / AssemblyInfo.cs

  • Löschen Sie die Verzeichnisse bin und obj im Windows Explorer

  • Öffnen Sie den Versionsverwaltungs-Explorer und benennen Sie das Projektverzeichnis um. Dadurch wird die Lösung geschlossen. Lass es geschlossen sein.

  • Öffnen Sie die SLN-Datei (mit einem Texteditor wie Notepad ++) und ändern Sie den Pfad zum Projekt (es sollten mehrere Stellen vorhanden sein).

  • Öffnen Sie die Lösung erneut. Bereinigen Sie das Projekt und erstellen Sie es neu.


0

Klicken Sie mit der rechten Maustaste auf das nicht verfügbare Projekt und bearbeiten Sie die Projektdatei. Möglicherweise finden Sie einen fest codierten oder einen virtuellen Dateipfad, der nicht mit dem Ort übereinstimmt, an dem Sie das Projekt ausgecheckt haben.

Freundlichkeit,

Dan


2
habe nicht die Option Bearbeiten. Es ist das einzige Projekt zum erneuten Laden, Ausschneiden und Entfernen.
Sineas

0

Lösung dafür

  1. Benennen Sie den Projektordner erneut um
  2. Stellen Sie eine bestimmte Version ein und erzwingen Sie den Zugriff in TFS
  3. Entfernen Sie die schreibgeschützte und versteckte Option im neuesten Ordner (nicht den umbenannten).
  4. Jetzt können Sie das Projekt ohne Probleme öffnen

0

Manchmal vergessen Sie möglicherweise, den Ordnernamen zu überprüfen, der das Projekt enthält , obwohl Sie den Pfad geändert .slnund .csprojmanuell umbenannt haben.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.