C#

Warning

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

Below are listed some of the most common processes that are involved in a C# project lifecycle and how they interact with the project infrastructure provided by the Foundation.


Build

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:

Release on NuGet via command-line
nuget pack project.csproj -IncludeReferencedProjects -Prop Configuration=Release


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


NuGet Badge
[![NuGet Packages Status](https://img.shields.io/nuget/v/<package name>.svg?maxAge=2592000)](https://www.nuget.org/packages/<package name>/)

This will appear as follows and link to the MyGet project page.


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

Need help? Email help@finos.org we'll get back to you.

Content on this page is licensed under the CC BY 4.0 license.
Code on this page is licensed under the Apache 2.0 license.