Skip to main content


C# is an object-oriented language that runs on the .NET Framework; feel free to browse the Foundation hosted projects written in C#.


The easiest way to locally build a C# project is to use Visual Studio, although it's also possible to use the MSBuild command-line tool; you can find more info on Microsoft Developer Network.

There is an open source, cross-platform alternative to the .NET Framework implementation called Mono, based on the ECMA standards for C# and the Common Language Runtime, however not all .NET applications can run on this platform, therefore it's safer to run all builds on a Windows environment that is configured with the .NET Framework installed.

Release on NuGet

NuGet is the package manager for the Microsoft development platform including .NET. The NuGet client tools provide the ability to produce and consume packages. The NuGet Gallery is the central package repository used by all package authors and consumers.

To release a project on NuGet, it is currently required to run the build process from a .NET (Windows) environment, as there are some known issues for NuGet to run with Mono on Linux and OSX; please refer to Mono issues on GitHub for more info.

From command-line, you can invoke the following command:

nuget pack project.csproj -IncludeReferencedProjects -Prop Configuration=Release

A badge can be added at the top of the project's root-level file, using the following Markdown syntax:

[![NuGet Packages Status](<package name>.svg?maxAge=2592000)](<package name>/)

You can also run this process continuously on each commit and publish pre-releases by integrating with MyGet.