Wie kann Visual Studio daran gehindert werden, Lösungsdateien „immer“ auszuchecken?

152

Jedes Mal, wenn ich meine Lösung öffne, überprüft Visual Studio die SLN-Datei ohne ersichtlichen Grund.

Wenn ich es mit der vorherigen Version vergleiche, gibt es keine Änderungen. Aber das ist wirklich frustrierend, da jeder die Lösung überprüft hat.

Ich verwende VS 2008 und TFS 2008, beide SP2.

Hast du eine Idee, wie ich das verhindern kann? Oder ist eine Funktion / ein Fehler des TFS-Quellcodeverwaltungsanbieters für VS?

CodeClimber
quelle
Haben Sie ein Unit-Test-Projekt als Teil der Lösung?
Mitch Wheat
1
TFS unterstützt gleichzeitiges Auschecken. Solange keine Änderungen an der SLN-Datei vorgenommen werden, sind mehrere Auscheckvorgänge kein Problem.
Dirk Vollmar
5
Wenn * .sln-Dateien tatsächliche Änderungen aufweisen, ist das Zusammenführen ein schrecklicher Albtraum, da die darin enthaltenen Projekte beliebige, aber nicht eindeutige IDs erhalten. Ich bin ein großer Befürworter für gleichzeitiges Auschecken, aber ich halte die meisten unserer * .sln gesperrt.
Richard Berg
3
Dies ist in VS2013 behoben !!! Ich öffne die gleiche Lösung im Jahr 2012 und sie überprüft .sln, öffnet im Jahr 2013 und es bleibt klar.
Felickz
2
Ich habe dies von Zeit zu Zeit bei allen Versionen von Visual Studio 2010 und bis zur neuesten Version, Visual Studio 2015 Update 3, gesehen. Es passiert ungefähr die Hälfte der Fälle, in denen ich eine Lösung öffne, und es scheint häufiger bei Lösungen zu sein mit vielen Projekten.
Tore Østergaard

Antworten:

121

Dies geschieht, wenn sich Folgendes in der SLN-Datei befindet:

GlobalSection(ExtensibilityGlobals) = postSolution
    MyGlobalProperty = AnyValue
EndGlobalSection

Ich fand, dass Enterprise Library eine davon hinzugefügt hat. Ich entfernte es, checkte die Lösung ein, schloss sie und öffnete sie wieder. Kein automatisches Auschecken mehr.

Graham Clark
quelle
21
Es sieht so aus, als hätte das Unity NuGet-Paket dies in VS 2010 für meine Lösungsdatei getan. Ich habe diesen Abschnitt entfernt und mein Problem beim automatischen Auschecken wurde behoben. Danke Graham!
Dan Mork
14
Zwei meiner Lieblingstechnologien - TFS und EntLib - was für ein Paar Lieblinge.
1
Ich habe einen solchen Abschnitt, möchte ihn aber nicht entfernen, da er Daten enthält, die ich behalten möchte - was jetzt? MS schloss dieses Problem als "nicht reproduzierbar" - dumm? connect.microsoft.com/VisualStudio/feedback/details/573538/…
Mattanja
Dans Kommentar fügt die erforderlichen Informationen hinzu - es ist nicht erforderlich, alle globalen Abschnitte zu entfernen - nur den Teil, der vom Unity Nuget-Paket hinzugefügt zu werden scheint.
Jordan0Day
2012 immer noch dasselbe
BlackICE
6

Wenn Sie aus dem Speicher das Menü Extras, Optionen verwenden und das Bedienfeld Quellcodeverwaltung, Umgebungen auswählen , sollten einige Optionen zum Konfigurieren der Schnittstelle der IDE mit der Versionskontrolle vorhanden sein.

Ich denke, einige dieser Optionen steuern das Auschecken bei offenem Verhalten.

jussij
quelle
1
Ja ... sie ermöglichen es Ihnen, automatisch auszuchecken, vom Auschecken
aufzufordern
Kannst du dann nicht einfach "Nein, nicht auschecken" sagen, wenn es dich dazu auffordert?
Scott Marlowe
Ich wünschte, ich wäre der einzige Entwickler im Team ... leider kann ich mich nicht darauf verlassen, dass alle Entwickler fleißig sind
CodeClimber
CodeClimber führt jedes Mal, wenn Sie VS starten, ein automatisches Auschecken durch und Sie möchten, dass das automatische Auschecken gestoppt und deaktiviert wird, um das Problem nicht zu beheben. Was zum?
veight
1
Für diejenigen, die nicht die "Umgebungen" in ihrer Liste der Optionen haben, ändern Sie Ihre Verbindung von "Lokal" zu "Server" (Quelle: stackoverflow.com/questions/26843300/… )
VenerableAgents
5

Nur für den Fall, dass Sie es wie ich nicht zum Laufen bringen konnten und Sie feststellen, dass ein oder mehrere Projekte ebenfalls ausgecheckt werden, habe ich eine einfachere Lösung gefunden. Notieren Sie sich die Projekte, die immer wieder ausgecheckt werden. Gehen Sie zu Datei - Quellcodeverwaltung - Quellcodeverwaltung ändern und lösen Sie die Bindung der betreffenden Projekte. Klicken Sie auf OK, Alle speichern, kehren Sie zu Quellcodeverwaltung ändern zurück und binden Sie das Projekt wieder an die Lösung. Hoffentlich funktioniert das für andere

user408720
quelle
3

Obwohl das Problem nicht in erster Linie verhindert wird, wird durch die liberale Verwendung des Befehls "Unverändert rückgängig machen" von Team Foundation Power Tools (überraschende Überraschung) die ausstehende Bearbeitung rückgängig gemacht, wenn keine Änderungen vorgenommen wurden.

Dave Roberts
quelle
Aktualisierter Link für Team Foundation Power Tools: marketplace.visualstudio.com/…
Jaider
3

Ermöglichen Sie das Auschecken und vergleichen Sie dann beide Dateien. Wenn VS so etwas hinzugefügt hat

<Service Include="{B4F97281-0DBD-4835-9ED8-7DFB966E87FF}" />

Es tritt ein VS-Fehler mit einer Lösung in VS2008 auf, die jedoch nicht auf VS2005 portiert ist

Überprüfen Sie diesen Link für weitere Details:

Luis Filipe
quelle
Kein Projekt in der Lösung hat diese XML-Zeile
CodeClimber
2

Die Visual Studio Solution-Datei wird mithilfe der Microsoft Enterprise Library in einem oder mehreren Projekten der Lösung stillschweigend ausgecheckt. Ich glaube, dies hat etwas mit dem Konfigurationsdienstprogramm für die Enterprise Library zu tun, mit dem die verschiedenen Anwendungsblöcke konfiguriert werden können - http : //msdn.microsoft.com/en-us/library/ff649479.aspx

Weitere Informationen finden Sie in diesem Microsoft-Feedback-Beitrag: http://connect.microsoft.com/VisualStudio/feedback/details/737184/globalsection-extensibilityglobals-postsolution-checks-out-sln-file-on-open

Nigel Belham
quelle
Vielen Dank für den Link Nigel, das ganze Team hat dieses Problem
Baldy
1

Es ist eine Funktion / ein Fehler eines der Projektsysteme, die in die Lösung geladen werden. Versuchen Sie, verschiedene Arten von Projekten (C #, VB, C ++, Website, Web-App, Komponententest, Silverlight ...) zu entfernen, bis sie verschwinden. Das ist deine Antwort.

Richard Berg
quelle
0

Speichern Sie Ihre Dateien vor dem Vergleich? Es ist mir vor einiger Zeit passiert und ich sage immer wieder, dass es keine Änderungen zwischen den Dateien gibt, aber nach einiger Zeit stelle ich fest, dass ich die Dateien vorher nicht gespeichert habe und es mit der Version auf der Festplatte verglichen wurde, nicht mit der Version im Speicher.

Jedes Mal, wenn Sie eine Lösung in Visual Studio öffnen, werden einige Vorgänge ausgeführt, die dazu führen können, dass sich Ihre SLN- oder Projektdateien ändern. Anschließend werden Sie aufgefordert, die Datei auszuchecken. Dies geschieht, wenn sich die Ordnerstruktur auf dem Entwicklercomputer ändert oder wenn nicht alle Dateien dieselbe Version haben. Vielleicht hat jemand ein Projekt in einem Ordner hinzugefügt und ein anderer Entwickler hat dasselbe Projekt an einem anderen Ort. Ein anderer Fall, den ich sehe, war, wenn wir eine Lösung mit einigen C ++ - Projekten haben. Aus irgendeinem Grund hatte eines dieser C ++ - Projekte eine .res-Datei mit absoluten Pfaden. Sobald diese Datei automatisch von VS generiert wurde, wurde sie von Entwicklermaschine zu Entwicklermaschine geändert.

Ich würde Ihnen empfehlen, Ihre .sln-Datei zu öffnen und nach absoluten Pfaden oder nach relativen Pfaden zu suchen, die auf einem Entwicklercomputer möglicherweise nicht vorhanden sind, je nachdem, welche Dateien sie von Ihrer Quellcodeverwaltung erhalten.

Carlos
quelle