f1dc0ff71f
Newline before "For OS X"
67 lines
3 KiB
Markdown
67 lines
3 KiB
Markdown
Developer Guide
|
|
===============
|
|
|
|
## Prerequisites
|
|
|
|
In order to build .NET Command Line Interface, you need the following installed on you machine.
|
|
|
|
### For Windows
|
|
|
|
1. Visual Studio 2015 with Web Development Tools
|
|
* Beta8 is available here and should work: http://www.microsoft.com/en-us/download/details.aspx?id=49442
|
|
* Install `WebToolsExtensionsVS14.msi` and `DotNetVersionManager-x64.msi`
|
|
2. CMake (available from https://cmake.org/) on the PATH.
|
|
3. git (available from http://www.git-scm.com/) on the PATH.
|
|
|
|
### For Linux
|
|
|
|
1. CMake (available from https://cmake.org/) is required to build the native host `corehost`. Make sure to add it to the PATH.
|
|
2. git (available from http://www.git-scm.com/) on the PATH.
|
|
3. clang (available from http://clang.llvm.org) on the PATH.
|
|
|
|
### For OS X
|
|
|
|
1. Xcode
|
|
2. CMake (available from https://cmake.org/) on the PATH.
|
|
3. git (available from http://www.git-scm.com/) on the PATH.
|
|
|
|
## Building/Running
|
|
|
|
1. Run `build.cmd` or `build.sh` from the root depending on your OS.
|
|
2. Use `artifacts/{os}-{arch}/stage2/dotnet` to try out the `dotnet` command. You can also add `artifacts/{os}-{arch}/stage2` to the PATH if you want to run `dotnet` from anywhere.
|
|
|
|
## A simple test
|
|
|
|
1. `cd test\TestApp`
|
|
2. `dotnet run`
|
|
|
|
|
|
##Adding a Command
|
|
|
|
The dotnet CLI considers any executable on the path named `dotnet-{commandName}` to be a command it can call out to. `dotnet publish`, for example, is added to the path as an executable called `dotnet-publish`. To add a new command we must create the executable and then add it to the distribution packages for installation.
|
|
|
|
0. Create an issue on https://github.com/dotnet/cli and get consensus on the need for and behavior of the command.
|
|
1. Add a new project for the command.
|
|
2. Add the project to Microsoft.DotNet.Cli.sln
|
|
3. Create a Readme.md for the command.
|
|
4. Add the project to the build scripts.
|
|
5. Add the project to the packaging scripts.
|
|
|
|
#### Add a new command project
|
|
Start by copying an existing command, like /src/Microsoft.DotNet.Tools.Init. Change the last part of the project name, .Init in this case, to the name of your command.
|
|
Update the Name property in project.json as well, but use the `dotnet-{command}` syntax here.
|
|
Make sure to use the System.CommandLine parser so behavior is consistant across commands.
|
|
|
|
#### Add a Readme.md
|
|
Each command's project root should contain a manpage-style Readme.md that describes the usage of the command. See other commands for reference.
|
|
|
|
#### Add project to build scripts
|
|
1. Add the project to `/scripts/build/build-stage.ps1`
|
|
- Add the project name to the `$Projects` list
|
|
2. Add the project to `/scripts/build/build-stage.sh`
|
|
- Add the project name to the `PROJECTS` list
|
|
3. run *build* from the root directory and make sure your project is producing binaries in /artifacts/
|
|
|
|
#### Add command to packages
|
|
- Update the `symlinks` property of `packaging/debian/debian_config.json` to include the new command
|
|
- Update the `$Projects` property in `packaging/osx/scripts/postinstall`
|