.. | ||
Contributing.md | ||
README.md |
Start developing on .NET Command Line Interface
Prerequisites
In order to build .NET Command Line Interface, you need the following installed on you machine.
For Windows
- 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
andDotNetVersionManager-x64.msi
- Install
- CMake (available from https://cmake.org/) on the PATH.
- git (available from http://www.git-scm.com/) on the PATH.
For Linux
- CMake (available from https://cmake.org/) is required to build the native host
corehost
. Make sure to add it to the PATH. - git (available from http://www.git-scm.com/) on the PATH.
- clang (available from http://clang.llvm.org) on the PATH.
For OS X
- Xcode
- CMake (available from https://cmake.org/) on the PATH.
- git (available from http://www.git-scm.com/) on the PATH.
Building/Running
- Run
build.cmd
orbuild.sh
from the root depending on your OS. - Use
artifacts/{os}-{arch}/stage2/dotnet
to try out thedotnet
command. You can also addartifacts/{os}-{arch}/stage2
to the PATH if you want to rundotnet
from anywhere.
Tools
Visual Studio
- You can use Visual Studio 2015 to work on these bits.
Visual Studio Code
- You can also use Visual Studo code https://code.visualstudio.com/ to contribute to this project.
A simple test
cd test\TestApp
dotnet run
Contributing to the repo
Contribution Guidelines
Once you are set up with requirements and you want to start, please review our contribution guidelines to get up to speed with the process.
Adding a Command
The donet 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.
- Create an issue on https://github.com/dotnet/cli and get consensus on the need for and behavior of the command.
- Add a new project for the command.
- Add the project to Microsoft.DotNet.Cli.sln
- Create a Readme.md for the command.
- Add the project to the build scripts.
- 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
- Add the project to /scripts/build/build-stage.ps1
- Add the project name to the
$Projects
list
- Add the project to /scripts/build/build-stage.sh
- Add the project name to the
PROJECTS
list
- 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 debian_config.json to include the new command
I just want to use this toolchain
If you just want to use the .NET Command Line Interface, your best bet would be to use the installers provided on the main README file. You can also follow the above guide for building from source to get the lastest (bleeding edge) bits.