¿Qué files .net deben excluirse del control de código fuente?

¿Qué extensiones de file de una aplicación .net deben excluirse del control de código fuente y por qué, por favor?

Depende del proyecto, pero tengo lo siguiente para un proyecto de Silverlight + WPF en mi .gitignore:

# Visual Studio left-overs *.suo # 'user' settings like 'which file is open in Visual Studio' *.ncb # Used for debugging *.user *.ccscc # Used for versioning *.cache # Editor left-overs *~ # (x)emacs *.bak # Windows related \#*\# # (x)emacs *.orig # Own usage # Compiled files */bin/ */obj/ */Obj/ # git is case sensitive */Generated_Code/ PrecompiledWeb */ClientBin # Windows left-overs Thumbs.db # Having images in the source tree generates those files in Explorer 

Sin embargo, el '.suo' es algo problemático: también contiene configuraciones de 'usuario' que deberían haber sido configuraciones del proyecto, como la página de inicio para una aplicación de Silverlight.

La mejor y única forma es agregar iterativamente los files para excluir. Si está usando git, use git-gui para ver rápida e interactivamente la list de files que ha olvidado excluir. Adapte .gitignore y actualice en git-gui. Itera hasta que los files restantes sean los que haya escrito.

Algunos types de files no son del todo claros por adelantado. Asegúrese de comprender todos los files que ingresa. Por ejemplo, para los services RIA en nuestro proyecto Silverlight, tuvimos una database de authentication generada por Visual Studio que contenía 2 counts y resultó en un file de database .MDB de 10Mb (!). Una vez que entendimos de dónde venía, al cambiarlo a un volcado de SQL se networkingujo el tamaño a 500 KB (todavía fuerte). Constantemente (re) comprobación antes de la verificación en sí misma siempre es necesaria, por lo que no hay una list definitiva.

Realmente depende de tu sistema de compilation. Compruebe los files mínimos que necesita para ejecutar una compilation completa.

En general, esto significa que excluye todo excepto sus files csproj y * .cs. Probablemente pueda registrar su file .sln si lo desea.

Obtuve mi list de esta pregunta: ¿El mejor patrón general de ignorar SVN?

Al igual que cualquier 'list', asegúrese de revisar las exclusiones y asegurarse de que todas se ajusten / no se ajusten a sus necesidades, pero es un gran comienzo.