Skip to content

Example development environment setup for dotnet & vscode using a nix flake

Notifications You must be signed in to change notification settings

squirmy/nix-flake-example-dotnet

Repository files navigation

nix-flake-example-dotnet

An example dotnet project using a nix flake for specifying it's development environment.

Getting Started

Dependencies

  1. Install Nix
  2. Install direnv & nix-direnv
  3. Install VSCode
  4. Install the recommended VSCode extensions

TODO: Quickstart option to install these via Nix.

Workflow

  1. Clone the repository

    git clone https://github.com/squirmy/nix-flake-example-dotnet

  2. Change directory

    cd nix-flake-example-dotnet

    If the dependencies are installed correctly you should see an error:

    direnv: error /Users/squirmy/code/nix-flake-example-dotnet/.envrc is blocked. Run `direnv allow` to approve its content

  3. Allow direnv to install the dependencies in the nix flake

    direnv allow

  4. Run a build to test it out

    dotnet build

  5. Launch VSCode from this directory for the best experience See Known Issues.

    code .

Known Issues

1. VSCode: Microsoft.CodeAnalysis.LanguageServer error on startup

Microsoft.CodeAnalysis.LanguageServer client: couldn't create connection to server

VSCode extensions do not have an order in which they are loaded on startup. Sometimes the dotnet extension will try to load before the direnv extension has had a chance to set the DOTNET_BIN environment variable causing this error.

This error can be safely ignored as the direnv extension is configured to restart extensions after the environment changes.

"direnv.restart.automatic": true

Changing directory into this project and then launching VSCode from the command line will avoid this error completely as VSCode will inherit the environment from the shell.

About

Example development environment setup for dotnet & vscode using a nix flake

Topics

Resources

Stars

Watchers

Forks