``` $/ docs/ src/ tests/ samples/ artifacts/ packages/ build/ lib/ .gitignore .gitattributes {solution}.sln NuGet.config build.cmd build.sh README.md LICENSE ``` - `src` - Main projects - `tests` - Test projects - `docs` - Documentation stuff, markdown files, help files etc. - `samples` (optional) - Sample projects - `lib` - Things that can **NEVER** exist in a nuget package - `artifacts` - Build outputs go here. Doing a build.cmd/build.sh generates artifacts here (nupkgs, dlls, pdbs, etc.) - `packages` - NuGet packages - `build` - Build customizations (custom msbuild files/psake/fake/albacore/etc) scripts - `build.cmd` - Bootstrap the build for windows - `build.sh` - Bootstrap the build for *nix ## .gitignore ``` [Oo]bj/ [Bb]in/ .nuget/ _ReSharper.* packages/ artifacts/ *.user *.suo *.userprefs *DS_Store *.sln.ide ``` There's probably more things that go in the ignore file. - Update: Added docs folder - Added README.md and LICENSE - Critical if you're OSS, if not ignore it - Renamed `test` to `tests` - Added lib for things that *CANNOT* exist in nuget packages