To follow is my standard layout for .NET projects. It is a modification of David Fowler's dotnetlayout.md gist
$/
artifacts/
build/
dependencies/
docs/
packages/
samples/
scripts/
source/
tests/
.gitignore
.gitattributes
{solution}.sln
build.cmd
LICENSE.txt
NuGet.config
README.md
All folders are optional but most will be used.
artifacts
- Build outputs go here. Doing a build.cmd generates artifacts here (nupkgs, dlls, pdbs, etc.)build
- Build customizations (custom msbuild files/psake/fake/albacore/etc) scriptsdependencies
- Things that can NEVER exist in a nuget package or downloaded by script.docs
- Documentation stuff, markdown files, help files etc.packages
- NuGet packagessamples
- Sample projects.scripts
- Scripts for the solution that are not directly related to the build. e.g. DeleteFilesNotUnderSourceControl.bat.source
- Main projectstests
- Test projectsbuild.cmd
- Bootstrap the build for windows
########################
# Operating System
########################
*DS_Store
thumbs.db
########################
# Visual Studio
########################
.vs/
[Aa]rtifacts/
[Bb]in/
[Oo]bj/
[Pp]ackages/
*.cache
*.feature.cs
*.user
*.suo
########################
# Solution specific
########################
What a namespace do you use in {app}.Console project?
Namespace "app.Console" (as a project name) will interfere with Console class.