NuLink 0.1.0-beta1

This is a prerelease version of NuLink.
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet tool install --global NuLink --version 0.1.0-beta1
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest # if you are setting up this repo
dotnet tool install --local NuLink --version 0.1.0-beta1
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=NuLink&version=0.1.0-beta1&prerelease
nuke :add-package NuLink --version 0.1.0-beta1

NuLink allows consuming NuGet packages from source code on local machine. This creates seamless environment where packages can be developed and tested as if their code was part of the main project. Learn more on GitHub

Build status Similar solutions

Getting started

Prerequisites

  • Linux, macOS, or Windows
  • .NET Core SDK 2.1+ (not tested on 3.0)

Currently NuLink supports SDK-style projects that consume packages through PackageReference. Support of .NET Framework-style projects that use packages.config is expected in upcoming versions.

Installing

$ dotnet tool install -g NuLink --version 0.1.0-beta1

Linking a package to local sources

Prior to linking, make sure these conditions are met:

  • package must be first restored from a NuGet feed (this limitation will be removed in upcoming versions)
  • package source project must be located on the local machine
  • either dotnet restore or dotnet build must be run at least once on the package project

In terminal, go to directory of project/solution that consumes the package, and run:

$ nulink link -p My.Package -l /path/to/my/package/source/My.Package.csproj

In this example, all consumers of My.Package will start using binaries from /path/to/my/package/source/bin/Debug.

See Usage instructions for more info.

How it works

NuLink creates symbolic links to resolve binaries of selected packages directly from local file system:

Original                      Redirect
--------------------          ----------------------
~ or %UserProfile%            working directory
|                             |
+- .nuget/                    +- My.Package/
   |                             | 
   +- packages/                  +- Source/
      |                             |
      +- My.Package/                +- My.Package.csproj     
         |                          |  
         +- 1.0.5/                  +- bin/
            |                          |
            +- lib >---> SYMLINK >---> +- Debug/
               |                          |
               +-X- netstandard2.0/       +-V- netstandard2.0/

In this example, every time My.Package.csproj is compiled, the latest binaries from its bin/Debug are automatically used by all consumers. Since the binaries are mapped (through .pdb) to local sources, code navigation and debugging on consumer side work seamlessly with latest changes in package code.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.1 is compatible.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last updated
0.1.0-beta2 778 8/20/2019
0.1.0-beta1 379 5/27/2019
0.1.0-alpha3 344 5/12/2019
0.1.0-alpha2 352 5/8/2019