Nocturnal Pumpkin Maelstrom

    TypeScript icon, indicating that this package has built-in type declarations

    3.1.1007 • Public • Published

    .NET Core 3.1 sdk

    This package installs the .NET Core 3.1 sdk for your platform and provides the dotnet executable.

    No elevation/root required.

    Partners with the dotnet-sdk-3.1 package.

    Usable as a standalone but also for shipping .NET based packages:

    Scenario 1: Global Installation

    To make the dotnet command available globally, run

    npm i -g dotnet-3.1      // for running dotnet apps
    npm i -g dotnet-sdk-3.1  // for developing dotnet apps

    Scenario 2: Dependency

    When installed as a dependency of a package, the dotnet command will be available to that package's scripts. This enables a very simple development and shipping experience for platform-independent .NET based applications.


    The following package.json uses both the dotnet-sdk-3.1 and dotnet-3.1 in order to simplify both developing and shipping the package.

      "name": "contoso",
      "version": "1.33.7",
      "description": "Contoso C# app",
      "scripts": {
        "build": "dotnet build src/contoso.csproj",
        "test": "dotnet test src/contoso.test.csproj",
        "start": "dotnet bin/netcoreapp2.0/contoso.dll"
      "devDependencies": {
        "dotnet-sdk-3.1": "*"
      "dependencies": {
        "dotnet-3.1": "*"

    This allows consuming the contoso package easily as a standalone using

    npx contoso

    or when installed (e.g. as a dependency of another package) using

    npm start

    Unsurprisingly, during development the following commands will work:

    npm run build
    npm run test

    Technical Details

    Platform Independence

    We created several platform-specific helper packages that actually provide the promised dotnet installation (e.g. dotnet-sdk-3.1-win). Such packages exist for Windows, Linux and MacOS. Here, we will merely determine the executing platform, acquire the corresponding package and populate .bin with scripts forwarding any calls to the actual binaries.

    Installation Location

    The platform-specific package (see above) is installed in a shared location in order to reliably deduplicate it across installations. By default, the installation location is ~/.net/3.1 since it is accessible without elevation.

    Environment Variables

    DEBUG - set to 1 to show debugging messages from the caller/installer scripts

    NO_NET_SDK - set to 1 to prevent the runtime runner for checking for and deferring to the SDK runner before using just the runtime.

    DOTNET_SHARED_ARCH - overrides the architecture (one of osx, linux, win, win-ia32).

    DOTNET_SHARED_HOME - overrides the base folder for installing dotnet runtimes/sdks. defaults to

    • linux/osx: ~/.net
    • windows: %USERPROFILE%\.net


    Since the .NET core tools and runtime both use a command called dotnet, both the runtime and sdk variants of this package do the same. If you have both installed, it will by default use the SDK which should support the needs of runtime running too.

    dotnet -- runs the SDK dotnet tool if installed, or falls back to running the runtime dotnet tool.

    install-dotnet-sdk -- installs the shared .NET Core sdk if it's not installed. use --force to overwrite if necessary


    npm i dotnet-sdk-3.1

    DownloadsWeekly Downloads






    Unpacked Size

    5.56 MB

    Total Files


    Last publish


    • windowsazure