$/
artifacts/
build/
docs/
lib/
packages/
samples/
src/
tests/
.editorconfig
.gitignore
.gitattributes
build.cmd
build.sh
LICENSE
NuGet.Config
README.md
{solution}.sln
src
- Main projects (the product code)tests
- Test projectsdocs
- Documentation stuff, markdown files, help files etc.samples
(optional) - Sample projectslib
- Things that can NEVER exist in a nuget packageartifacts
- Build outputs go here. Doing a build.cmd/build.sh generates artifacts here (nupkgs, dlls, pdbs, etc.)packages
- NuGet packagesbuild
- Build customizations (custom msbuild files/psake/fake/albacore/etc) scriptsbuild.cmd
- Bootstrap the build for windowsbuild.sh
- Bootstrap the build for *nixglobal.json
- ASP.NET vNext only
[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
totests
- Added lib for things that CANNOT exist in nuget packages
- Removed NuGet.config for people using packet :)
- Added global.json for ASP.NET vnext
- Added .editorconfig file in the root (x-plat IDE settings)
- Added NuGet.config back because people were confused about it missing
This is a great starting point, thanks!
For generating the gitignore file, you can always use the dotnet CLI as follows;
Also, I think we should pretend batch scripts never existed and always assume that it will be a PowerShell script
build.ps1
that starts the build 😄 PowerShell is a significantly more robust scripting language and well worth knowing IMHO.I think it also would be good to clarify whether sub-directories should be present in
src
andtests
if there's only one project. For example, dotnet-format places the project at the root ofsrc
andtests
directories which may be appropriate if only one project is present, but is this a good approach?Huge thanks for the gist 😄
Fotis