it-swarm-eu.dev

Soll ich die .suo- und .user-Dateien von Visual Studio zur Quellcodeverwaltung hinzufügen?

Visual Studio-Lösungen enthalten zwei Arten von verborgenen Benutzerdateien. Eine davon ist die Lösungsdatei .suo, die eine binäre Datei ist. Die andere ist die Projektdatei .user, die eine Textdatei ist. Welche Daten enthalten diese Dateien genau?

Ich habe mich auch gefragt, ob ich diese Dateien zur Quellcodeverwaltung hinzufügen sollte (in meinem Fall Subversion). Wenn ich diese Dateien nicht hinzufüge und ein anderer Entwickler die Lösung auscheckt, erstellt Visual Studio automatisch neue Benutzerdateien?

783
Ben Mills

Diese Dateien enthalten Konfigurationen für Benutzereinstellungen, die im Allgemeinen für Ihren Computer spezifisch sind. Es ist daher besser, diese nicht in SCM zu speichern. Außerdem ändert VS es fast jedes Mal, wenn Sie es ausführen, so dass es vom SCM immer als 'geändert' gekennzeichnet wird Keine Probleme damit. Der einzige kleine Ärger ist, dass die Debug-Parameter (Ausführungspfad, Implementierungsziel usw.) in einer dieser Dateien gespeichert werden (wissen Sie nicht welche), wenn Sie also einen Standard haben, können Sie dies nicht tun. ' Veröffentlichen Sie es über SCM, damit andere Entwickler die gesamte Entwicklungsumgebung einsatzbereit haben.

638
Fabio Ceconello

Sie müssen diese nicht hinzufügen - sie enthalten Benutzereinstellungen und andere Entwickler möchten Ihre Kopie nicht.

131
Steve Cooper

Andere haben erklärt, warum es nicht empfehlenswert ist, die *.suo- und *.user-Dateien unter Quellcodeverwaltung zu haben.

Ich möchte vorschlagen, dass Sie diese Muster aus zwei Gründen zur svn:ignore-Eigenschaft hinzufügen:

  1. Andere Entwickler werden also nicht mit den Einstellungen eines Entwicklers enden.
  2. Wenn Sie also den Status anzeigen oder -Dateien übergeben, werden diese nicht durch die Codebasis gestört und die neuen Dateien, die Sie hinzufügen müssen, verdeckt.
66
JXG

Wir geben die Binärdatei (* .suo) nicht fest, sondern die .user-Datei. Die .user-Datei enthält beispielsweise die Startoptionen zum Debuggen des Projekts. Die Startoptionen finden Sie in den Eigenschaften des Projekts auf der Registerkarte "Debug". Wir haben in einigen Projekten NUnit verwendet und nun die nunit-gui.exe als Startoption für das Projekt konfiguriert. Ohne die .user-Datei müsste jedes Teammitglied diese separat konfigurieren.

Hoffe das hilft.

47
Thomas

Da ich diese Frage/Antwort 2011 über Google gefunden habe, dachte ich, ich würde einen zweiten Moment nehmen und den Link für die von Visual Studio 2010 erstellten * .SDF-Dateien zur Liste der Dateien hinzufügen, die wahrscheinlich nicht der Versionskontrolle hinzugefügt werden sollten ( Die IDE erstellt sie neu.) Da ich nicht sicher war, ob eine * .sdf-Datei anderweitig legitimiert verwendet werden kann, habe ich nur die spezifische [Projektname] .sdf-Datei von SVN ignoriert.

Warum erstellt der Visual Studio-Konvertierungsassistent 2010 eine umfangreiche SDF-Datenbankdatei?

25
Stephen

Nein, Sie sollten sie nicht zur Quellcodeverwaltung hinzufügen, da sie - wie Sie sagten - benutzerspezifisch sind.

SUO (Solution User Options): Zeichnet auf alle Optionen, die Sie verknüpfen Sie Ihre Lösung so, dass Jedes Mal, wenn Sie es öffnen, enthält es Anpassungen, die Sie gemacht. 

Die .user-Datei enthält die Benutzeroptionen für das Projekt (während SUO für die Lösung vorgesehen ist) und erweitert den Namen der Projektdatei (z. B. "anything.csproj.user" enthält Benutzereinstellungen für das Projekt "anything.csproj").

22
JRoppert

Dies scheint Microsofts Meinung in dieser Angelegenheit zu sein:

Hinzufügen (und Bearbeiten) von .suo-Dateien zur Quellcodeverwaltung

Ich weiß nicht, warum Ihr Projekt das DebuggingWorkingDirectory in .__ speichert. die Suo-Datei. Wenn dies eine benutzerspezifische Einstellung ist, sollten Sie Folgendes berücksichtigen: Speichern Sie das im Dateinamen * .proj.user. Wenn diese Einstellung gemeinsam genutzt werden kann Zwischen allen Benutzern, die an dem Projekt arbeiten, sollten Sie das Speichern von .__ berücksichtigen. es in der Projektdatei selbst.

Denken Sie nicht daran, die Suo-Datei zur Quellcodeverwaltung hinzuzufügen! Die SUO (Lösung Benutzeroptionen) Datei soll benutzerspezifische .__ enthalten. Einstellungen und sollte nicht von Benutzern gemeinsam genutzt werden, die an demselben .__ arbeiten. Lösung. Wenn Sie die suo-Datei in die scc-Datenbank einfügen, kann ich nicht wissen Sie, welche anderen Dinge in der IDE Sie zerbrechen würden, aber von der Quellcodeverwaltung Sichtweise werden Sie die Scc-Integration von Webprojekten brechen, das Lan vs Internet-Plugin, das von verschiedenen Benutzern für den VSS-Zugriff verwendet wird, und Sie könnten Der scc kann sogar vollständig unterbrochen werden (der Pfad der VSS-Datenbank, der in der suo-Datei gespeichert ist, die möglicherweise für Sie gültig ist, ist möglicherweise nicht für einen anderen Benutzer gültig).

Alin Constantin (MSFT)

17
Scott W

Standardmäßig schließt Microsoft Visual SourceSafe diese Dateien nicht in die Quellcodeverwaltung ein, da sie benutzerspezifische Einstellungsdateien sind. Ich würde diesem Modell folgen, wenn Sie SVN als Quellcodeverwaltung verwenden.

17
cori

Visual Studio erstellt sie automatisch. Ich empfehle nicht, sie in die Quellcodeverwaltung zu stellen. Es gab zahlreiche Male, in denen die SOU-Datei eines lokalen Entwicklers dazu führte, dass sich VS auf dieser Entwickler-Box unregelmäßig verhalten hat. Wenn Sie die Datei löschen und VS neu erstellen lassen, wurden die Probleme immer behoben. 

11
Bloodhound

Auf der MSDN-Website wird klargestellt, dass 

Die Lösungsbenutzeroptionsdatei (.suo) enthält die Lösung für jeden Benutzer Optionen. Diese Datei sollte nicht in die Quellcodeverwaltung eingecheckt werden.

Ich würde also sagen, es ist ziemlich sicher, diese Dateien zu ignorieren, während Sie in Ihrer Quellcodeverwaltung Sachen einchecken. 

10
Farax

Ich würde nicht Alles, was sich pro "Benutzer" ändern könnte, ist normalerweise nicht gut in der Quellcodeverwaltung. Verzeichnisse .suo, .user, obj/bin

8
ScaleOvenStove

Diese Dateien sind benutzerspezifische Optionen, die unabhängig von der Lösung selbst sein sollten. Visual Studio erstellt bei Bedarf neue, sodass sie nicht in die Quellcodeverwaltung eingecheckt werden müssen. In der Tat wäre es wahrscheinlich besser, dies zu tun, da einzelne Entwickler ihre Umgebung so anpassen können, wie sie es für richtig halten.

7
benefactual

Sie können die .user-Dateien nicht quellengesteuert steuern, da dies benutzerspezifisch ist. Es enthält den Namen der Remote-Maschine und andere benutzerabhängige Dinge. Es ist eine vcproj-bezogene Datei.

Die .suo-Datei ist eine mit Sln zusammenhängende Datei und enthält die "Lösungsbenutzeroptionen" (Startprojekt (e), Position des Fensters (was ist wo angedockt, was schwebt) usw.

Es ist eine binäre Datei und ich weiß nicht, ob sie etwas "benutzerbezogenes" enthält.

In unserem Unternehmen übernehmen wir diese Dateien nicht unter Quellcodeverwaltung.

6
ugasoft

Sie enthalten die spezifischen Einstellungen für das Projekt, die normalerweise einem einzelnen Entwickler zugewiesen sind (wie z. B. das Startprojekt und die Startseite, die beim Debuggen Ihrer Anwendung gestartet werden).

Es ist daher besser, sie nicht der Versionskontrolle hinzuzufügen. VS muss sie erneut erstellen, sodass jeder Entwickler die spezifischen Einstellungen haben kann, die er wünscht. 

6

.user ist die Benutzereinstellungen, und ich denke. Sie möchten diese Dateien nicht unter Quellcodeverwaltung haben. Sie werden für jeden Benutzer neu erstellt.

4
Nick

Rational ClearCase verwenden Die Antwort lautet nein. Nur das Projekt .sln &. * Sollte in der Quellcodeverwaltung registriert sein.

Ich kann nicht für andere Anbieter antworten. Wenn ich mich richtig erinnere, handelt es sich bei diesen Dateien um "benutzerspezifische" Optionen für Ihre Umgebung.

3
titanae

Fügen Sie keine dieser Dateien der Versionskontrolle hinzu. Diese Dateien werden automatisch mit arbeitsplatzspezifischen Informationen generiert, wenn bei der Versionskontrolle eingecheckt wird, was zu Problemen bei anderen Arbeitsstationen führt. 

1
Amila

Wenn Sie die Abhängigkeiten Ihrer ausführbaren Verzeichnisse in ProjectProperties> Debugging> Environment festlegen, werden die Pfade in '.user'-Dateien gespeichert.

Angenommen, ich setze diesen String in das oben genannte Feld: "PATH = C:\xyz\bin" So wird er in der '.user'-Datei gespeichert:

<LocalDebuggerEnvironment>PATH=C:\xyz\bin$(LocalDebuggerEnvironment)</LocalDebuggerEnvironment>

Dies hat uns bei der Arbeit mit OpenCV sehr geholfen. Wir könnten verschiedene Versionen von OpenCV für verschiedene Projekte verwenden. Ein weiterer Vorteil ist, dass es sehr einfach war, unsere Projekte auf einer neuen Maschine einzurichten. Wir mussten nur die entsprechenden Abhängigkeitsverzeichnisse kopieren. Daher ziehe ich es bei einigen Projekten vor, der Quellcodeverwaltung die Erweiterung ".user" hinzuzufügen.

Auch wenn es ganz auf Projekte ankommt. Sie können einen Anruf nach Ihren Wünschen entgegennehmen.

1
adheen

Nein, sie sollten sich nicht für die Quellcodeverwaltung verpflichten, da es sich um lokale Einstellungen für Entwickler/Computer handelt.

GitHub enthält eine Liste mit empfohlenen Dateitypen, die von Visual Studio-Benutzern ignoriert werden können, unter https://github.com/github/gitignore/blob/master/VisualStudio.gitignore .

Für svn habe ich die folgende global-ignore-Eigenschaft eingestellt:

* .DotSettings.User
* .onetoc2
* .suo
.vs
VorkompiliertesWeb
thumbs.db
obj
Behälter
debuggen
*.Nutzer
* .vshost. *
* .tss
* .dbml.layout

0
Stephen Kennedy

Nein.

Ich wollte nur eine kurze Antwort, und es gab keine.

Wie in anderen Antworten erläutert, sollten sowohl .suo als auch .user nicht zur Quellcodeverwaltung hinzugefügt werden, da sie benutzer-/maschinenspezifisch sind (BTW .suo für die neuesten Versionen von VS wurde in das dedizierte temporäre Verzeichnis .vs verschoben, das nicht im Quellcode enthalten sein sollte) vollständig kontrollieren).

Allerdings Wenn Ihre Anwendung eine Umgebung für das Debuggen in VS benötigt (solche Einstellungen werden normalerweise in der Datei .user gespeichert), kann es nützlich sein, eine Beispieldatei vorzubereiten (wie .user.SAMPLE benannt) und der Quellcodeverwaltung hinzuzufügen Verweise.

Anstelle eines fest codierten absoluten Pfads in einer solchen Datei ist es sinnvoll, relative Pfade zu verwenden oder sich auf Umgebungsvariablen zu stützen, sodass das Beispiel möglicherweise allgemein genug ist, um von anderen Benutzern problemlos wiederverwendet werden zu können.

0
AntonK