2009-10-29 4 views
44

Ich bin neu in Visual C# Studio (tatsächlich mit der Express-Edition, aber ein anderer Entwickler verwendet die Vollversion), und wir verwenden Versionskontrolle (Svn).Welche Dateien in einem Visual C# Studio-Projekt müssen nicht versioniert werden?

Es ist akzeptabel für mich, die Projektdateien zum Repository hinzuzufügen, da dieses Repo nur für uns zwei ist, die Visual C# Studio verwenden. Aber es fühlt sich an, als wären da irrelevante Dateien drin. Kann jemand, der mit Visual C# Studio-Projektdateien vertraut ist, mir sagen, welche Dateien sicher ignoriert werden können?

Einige verdächtige Dateien:

  • project.csproj
  • project.csproj.Debug.cachefile
  • project.csproj.user
  • project.sln
  • project.suo
  • Inhalt \ Content.contentproj

Ich bin mir sicher, dass die .sln erforderlich ist, aber was ist das .suo? und die .csproj? Kann/sollte eine dieser Dateien von Visual C# Studio beim Laden eines Projekts generiert werden?

+0

Die SLN ist die Lösung Datei ist die csproj die C# Projektdatei. Sie benötigen beide Dateien. Der Suo ist die Lösungsbenutzeroptionsdatei und wie der Name andeutet, wollen Sie diese Datei nicht. Es enthält nur Benutzeroptionen. Auch alle * .csproj. * Dateien können ignoriert werden. – mrsheen

+0

http://msdn.microsoft.com/en-us/library/ee817674.aspx Explizite Liste von Microsoft dort. – JMD

Antwort

0

Wir arbeiten auch mit Visual Studio C# und SVN und ich weiß nicht über alle Projektdateien, aber wir schließen nur die vollständige bin Verzeichnis.

5

Die .sln-Datei definiert Ihre Lösung zusammen mit den .proj-Dateien (eine für jedes Projekt), also behalten Sie sie in Ihrer Svn!

Sie können die. SUO-Datei (persönliche Einstellungen - binäre trotzdem) sowie die Ordner bin oder obj überspringen. Auch die .cache-Dateien können belassen werden.

1

benötigt ...

* SLN - Die Lösung Datei enthält Verweise auf alle Projekte und Abhängigkeiten zwischen den Projekten.
* .csproj - Die Projektdateien selbst. Diese geben an, welche Dateien im Projekt, in Referenzen und in den Erstellungsschritten für das Projekt enthalten sind.

Nicht ...

* .suo - Diese Datei und Benutzereinstellungen ...

12

nicht versioniert werden sollte:

  • .csproj.user die Projektdatei des Benutzers Einstellungen (zB Startprojekt)
  • .suo ist die Lösung Dateieinstellungen des Benutzers

Sollte werden versioniert:

  • SLN die Lösung Datei selbst (welche Projekte es enthält usw.)
  • CSPROJ ist die Projektdatei

Ich bin mir nicht sicher „contentproj“ aber es klingt als wäre es eine Projektdatei, die unter SVN stehen sollte.

0

Sie brauchen auf jeden Fall csproj-Dateien ... Sie möchten AnkhSVN oder VisualSVN versuchen, diese VS-Addins fügen nur die erforderlichen Dateien zu SVN hinzu.

Oder Sie können Dateien aus Ihrer Verzeichnisstruktur entfernen, bis sie nicht mehr lädt.

Ich schlage vor, auf diese Weise zu experimentieren, weil es ein guter Weg ist zu lernen, wie eine Lösung Strukturen von VS ist.

0

lasse ich die Visual Studio Solution User Options-Datei aus (* .suo) und die Binärdateien Verzeichnisse, wie sie jedes Mal neu kompiliert bekommen Sie Ihre Lösung bauen (die bin und obj Ordner).

15

.csproj definiert die Projektstruktur. Es ist lebenswichtig.

Das ist, was ich meine globale ignorieren Liste in Tortoise SVN hinzufügen:

*.suo *.user bin obj *.pdb *.cache *_svn *.svn *.suo *.user *.build-res TestResults _ReSharper* 
1

einfach hinzuzufügen, alles, was bei der Erstellung regeneriert wird, ausgeschlossen werden soll. Zum Beispiel Dateien, die aus dem Prebuild-Ereignis oder in einigen Fällen ein benutzerdefiniertes Tool generiert wurden.

+1

Das ist nicht immer der Fall. Dateien, die von einem SingleFileGenerator generiert wurden, sowie vom Designer generierte Dateien, die mit .xaml,.resx, und Formulare sollten eingecheckt werden. –

+0

Genau deshalb habe ich einige Fälle gesagt. – leppie

0

Überprüfen Sie diese - type visualstudio und Sie werden eine .gitignore-Datei für Sie generiert haben, können Sie auch mehrere Sprachen/ign 'Ignore-Dateien miteinander verketten, wenn Sie eine Lösung haben, die mehrere Sprachen enthält.

0

Da dies nicht in anderen Antworten noch angedeutet:

Im Fall, dass Sie Visual Studio mit Unity 3D verwenden, können Sie sicher beide ein * CSPROJ und * SLN zur .gitignore Datei im Gegensatz zum üblichen Fall.

Tatsächlich wird die Projektstruktur von Unity selbst verwaltet, nicht von Visual Studio. Die einzigen Konsequenzen davon, sie in der Quellcodeverwaltung zu belassen, sind Konflikte, noch mehr, wenn aus verschiedenen Gründen verschiedene Visual Studio-Versionen unter den Commitern verwendet werden.

Beispiel .gitignore für Unity 3D: https://github.com/github/gitignore/blob/master/Unity.gitignore

Verwandte Themen