ProjectScaffold helps you get started with a new .NET/Mono project solution with everything needed for successful organising of code, tools and publishing.
We recommend you use ProjectScaffold for all new projects.
- helps manage NuGet packages
- can reference files directly with a URL from GitHub or from any where on the web
- gives precise and predictable control over referenced packages
- allows a simple one step release process
- works with most build servers
- compiles the application and runs all test projects
- synchronizes all
AssemblyInfofiles prior to compilation
- generates SourceLinks
- generates API docs based on XML documentation tags
- generates documentation based on Markdown files
- generates and/or pushes NuGet packages
The first thing to do is to clone or copy the ProjectScaffold repository to your developer workspace. This will eventually be your solution folder. Feel free to rename ProjectScaffold folder to your liking.
In order to generate your project first run:
$ build.cmd // on windows $ build.sh // on mono
This would prompt you to enter a name for your project solution, which is required, and then some more details which are optional:
- Project summary
- Project description
- Author's name for NuGet package
- Tags for NuGet package (separated by spaces)
- Github url (leave blank to use "https://github.com")
- Github raw url (leave blank to use "https://raw.githubusercontent.com")
- GitHub username
- GitHub project name (if different than project name from above)
- Initialize git repo [Yn]
- Origin (url of git remote; blank to skip)
During this initialization process project structure is generated and necessary packages and tools would be downloaded.
After the initialization has finished you can open, edit, build and test using
Manual steps for migrating existing project to Scaffold structure:
- Clone ProjectScaffold to new folder
- Run the initializing build
- Delete .git folder
- Copy intitialized scaffold files and folders to original project folder
git add / commit project -m"first pass migrating to scaffold structure"(otherwise git will be confused by next
git mvnecessary project file folders into src and/or test folder(s)
- ... and any following cleanup
Be sure to do only
git mv file renames in a single commit. If you try to commit anything else git will treat the renames as file delete / file add and you will loose history on those files.
- Running builds
- Running tests
- Paket dependency management
- Writing docs
- Using build servers
- Release process
If you want to contribute to the documentation, please do so by doing a
checkout of the
docs branch of the repo.
The library is available under Public Domain license, which allows modification and redistribution for both commercial and non-commercial purposes. For more information see the License file in the GitHub repository.