Quali file in un progetto Visual C # Studio non devono essere sottoposti a versionamento?

Sono nuovo di Visual C # Studio (in realtà utilizzando l’edizione Express, ma un altro sviluppatore sta utilizzando la versione completa), e stiamo usando il controllo di versione (svn).

È accettabile per me aggiungere i file di progetto al repository, poiché questo repository è solo per noi due che utilizzano Visual C # Studio. Ma sembra che ci siano dei file irrilevanti. Qualcuno può avere familiarità con i file di progetto di Visual C # Studio e dirmi quali file possono tranquillamente essere svn: ignorati?

Alcuni file sospetti:

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

Sono sicuro che il .sln è richiesto, ma cos’è questo .suo? e il .csproj? È ansible / dovrebbe essere generato da Visual C # Studio durante il caricamento di un progetto?

Non includere
bidone
obj
* .suo
*.utente
_Resharper* (se hai Resharper )

Includere
* .sln
* csproj

Puoi anche controllare il file .gitignore per i progetti di Visual Studio su github.

.csproj definisce la struttura del progetto. È di vitale importanza.

Questo è ciò che aggiungo alla mia lista di ignoranza globale in SVN Tortoise:

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

Non dovrebbe essere versionato:

  • .csproj.user è le impostazioni del file di progetto dell’utente (es. progetto di avvio)
  • .suo è le impostazioni del file della soluzione dell’utente

Dovrebbe essere versionato:

  • .sln è il file di soluzione stesso (quali progetti contiene ecc.)
  • .csproj è il file di progetto

Non sono sicuro di “contentproj” ma suona come se fosse un file di progetto che dovrebbe essere sotto svn.

Il file .sln definisce la tua soluzione insieme ai file .proj (uno per ogni progetto), quindi tienili nella tua svn!

È ansible saltare il file .suo (impostazioni personali – binario in ogni caso) e le cartelle bin o obj. Anche i file .cache possono essere lasciati.

Necessario …

* .sln – Il file della soluzione contiene riferimenti a tutti i progetti e le dipendenze tra i progetti.
* .csproj – I file di progetto stessi. Questi indicano quali file sono inclusi nel progetto, i riferimenti e i passaggi di costruzione per il progetto.

Non…

* .suo – Questo è un file delle impostazioni utente …

Giusto per aggiungere, tutto ciò che viene rigenerato in fase di costruzione, dovrebbe essere escluso. Ad esempio, i file generati dall’evento pre-build o in alcuni casi uno strumento personalizzato.

Lavoriamo anche con Visual Studio C # e SVN e non conosco tutti i file di progetto, ma escludiamo solo la directory bin completa.

Hai sicuramente bisogno di file csproj … Potresti provare AnkhSVN o VisualSVN, quegli add-on VS aggiungono solo i file richiesti a SVN.

Oppure puoi rimuovere i file dalla struttura della tua directory fino a quando non carica più.

Suggerisco di sperimentare in questo modo perché è un ottimo modo per imparare come VS è una soluzione.

Lascio fuori il file delle opzioni utente della soluzione di Visual Studio (* .suo) e le directory dei binari non appena vengono ricompilati ogni volta che si crea la soluzione (le cartelle bin e obj ).

Controlla questo – scrivi visualstudio amd avrai un file .gitignore generato per te, inoltre puoi concatenare più lingue / ide ‘ignorare i file insieme se hai una soluzione che contiene più lingue.

Come questo non è stato indicato in altre risposte ancora:

Nel caso si utilizzi Visual Studio con Unity 3D, è ansible aggiungere in modo sicuro sia * .csproj che * .sln al file .gitignore , al contrario del solito caso.

Infatti, la struttura del progetto è gestita da Unity stessa, non da Visual Studio. Le sole conseguenze di mantenerle nel controllo del codice sorgente sono i conflitti, ancor più se per qualche motivo vengono utilizzate versioni diverse di Visual Studio tra i commiters.

Esempio .gitignore per Unity 3D: https://github.com/github/gitignore/blob/master/Unity.gitignore