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?


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.


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.


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



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:


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


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.


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.

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.