NuLink 0.1.0-alpha2

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-alpha2
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-alpha2
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=NuLink&version=0.1.0-alpha2&prerelease
nuke :add-package NuLink --version 0.1.0-alpha2

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

Build status

Getting started

Prerequisites

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

The tool runs on .NET Core, but it should support .NET Framework projects and packages as well (not yet tested).

Installing

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

Linking a package to local sources

Prior to linking:

  • package source code must reside on local machine
  • dotnet restore with dotnet build must be run 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 seamlessly used by all consumers. Since these binaries are mapped (through .pdb) to local code of the package, code navigation and debugging on consumer side works seamlessly as well.

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