¿Qué files de proyectos c # debo controlar?

Tengo un proyecto que estoy buscando para administrar manualmente mediante el control forzado de la versión ya que solo tengo la edición Express. Lo que estoy buscando es qué files se deben excluir en el control de la versión, ya que bloquear muchos de los files puede resultar en un problema para la compilation y debugging de Visual Studio.

Lo que tengo, hasta ahora, incluido.
Archivos .cs (excepto la carpeta de properties)
files .resx
Archivos .csproj

Excluido
carpeta bin
carpeta obj
Carpeta de properties
file .user

Avíseme si hay algo más que debería includese que he excluido o si hay una forma mejor de hacerlo.

Debe include la carpeta Propiedades; contiene AssemblyInfo.cs (con todos los attributes de ensamblaje) y los files de configuration y resources pnetworkingeterminados del proyecto, si los hay.

También debe include el file .sln, si corresponde.

También excluye:

.suo app.config (you should commit something like app-dev.config instead) 

Re: app.config:

app.config general contiene información específica de la máquina (como cadenas de connection de bases de datos, configuraciones pnetworkingeterminadas o routes a resources) y no desea que esto se destruya cada vez que visita el control de código fuente. Estos files deben crearse / copyrse con scripts de implementación.

Cuando hay múltiples desarrolladores en un proyecto, cada uno con su propio server de database, esto es especialmente molesto. Lo contrario puede ser incluso más peligroso: si implementa el código en la producción mediante el control de revisión, puede configurar la producción inadvertidamente para usar una database de desarrollo, lo que podría ser desastroso.

No olvides agregar cualquier image, ícono, etc. que puedas estar usando en tu aplicación. Es fácil olvidar esto.

También si tiene alguna documentation asociada con el proyecto: especificaciones, layouts, files de ayuda, etc. Póngalos en carpetas separadas en el proyecto y luego inclúyalos también.

Si utilizo files DLL de terceros, la versión los controlo con el proyecto y uso la implementación paralela de manera que el file DLL se copie en la carpeta bin durante la compilation (en lugar de simplemente registrar el file DLL en el GAC). El efecto de esto es que otro desarrollador puede sacar el proyecto del control de origen y tener las dependencies que necesita para comstackr y ejecutar el proyecto correctamente. No hay descarga inútil y la installation de componentes de terceros, y está seguro de que todos están desarrollando / probando contra la misma versión de dll de terceros.