# Using OR-Tools NuGet for .Net

## Introduction

This guide gets you started with OR-Tools in .Net with a simple working
example.

Although these instructions might also work on other Linux variants, we
have only tested them on machines meeting the following requirements:


- Alpine Edge 64-bit (x86_64)
- Centos 7 LTS 64-bit (x86_64)
- Debian SID 64-bit (x86_64)
- Debian 11 (bullseye) 64-bit (x86_64)
- Fedora 38 64-bit (x86_64)
- Fedora 37 64-bit (x86_64)
- OpenSuse Leap 64-bit (x86_64)
- Ubuntu 24.10 64-bit (x86_64)
- Ubuntu 22.04 LTS 64-bit (x86_64)
- Ubuntu 20.04 LTS 64-bit (x86_64)

<br />

## Prerequisites

The following sections describe the prerequisites for installing OR-Tools.

### .Net Core SDK \>= 3.1

Next, install the .Net Core SDK version 3.1 or higher. To do so,
open a terminal window and enter:

### Alpine

    apk add dotnet6-sdk
        ref: https://learn.microsoft.com/en-us/dotnet/core/install/linux-alpine

### Centos

    sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
    sudo yum install -y dotnet-sdk-6.0

ref: https://learn.microsoft.com/en-us/dotnet/core/install/linux-centos#centos-7

### Debian

Before you install .NET, run the following commands to add the Microsoft
package signing key to your list of trusted keys and add the package
repository.

    wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb

    sudo apt update
    sudo apt install -y dotnet-sdk-6.0

ref: https://learn.microsoft.com/en-us/dotnet/core/install/linux-debian

### Fedora

    sudo dnf install -y dotnet-sdk-6.0

ref: https://learn.microsoft.com/en-us/dotnet/core/install/linux-fedora

### Fedora

    sudo dnf install -y dotnet-sdk-6.0

ref: https://learn.microsoft.com/en-us/dotnet/core/install/linux-fedora

### OpenSUSE

Before you install .NET, run the following commands to add the Microsoft
package signing key to your list of trusted keys and add the package
repository.

    sudo zypper install libicu
    sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
    wget https://packages.microsoft.com/config/opensuse/15/prod.repo
    sudo mv prod.repo /etc/zypp/repos.d/microsoft-prod.repo
    sudo chown root:root /etc/zypp/repos.d/microsoft-prod.repo

Then you can install the .Net SDK using the following command:

    sudo zypper install -y dotnet-sdk-6.0

ref: https://learn.microsoft.com/en-us/dotnet/core/install/linux-opensuse

### Ubuntu

    sudo apt install -y dotnet-sdk-6.0

ref: https://learn.microsoft.com/en-us/dotnet/core/install/linux-ubuntu

### Ubuntu

    sudo apt install -y dotnet-sdk-6.0

ref: https://learn.microsoft.com/en-us/dotnet/core/install/linux-ubuntu

### Ubuntu

    sudo apt install -y dotnet-sdk-6.0

ref: https://learn.microsoft.com/en-us/dotnet/core/install/linux-ubuntu

## Get the .Net example code

The example code is located in the
[dotnet_or-tools](https://github.com/or-tools/dotnet_or-tools) repository.

1. [Download the repository as a zip file](https://github.com/or-tools/dotnet_or-tools/archive/v9.12.zip)
   and extract it, or clone the repository:

       git clone -b v9.12 --depth 1 https://github.com/or-tools/dotnet_or-tools

2. Change to the examples directory:

       cd dotnet_or-tools

## Build the example

From the `dotnet_or-tools` directory:

Build the project using:


    dotnet build -c Release

<br />

## Run the example

From the `dotnet_or-tools` directory:

Run the binary using:


    dotnet run -c Release

<br />

Congratulations! You've just run an application with OR-Tools, you are ready to
[get started with OR-Tools](https://developers.google.com/optimization/introduction/dotnet).