NuLink 0.1.0-beta1
See the version list below for details.
dotnet tool install --global NuLink --version 0.1.0-beta1
dotnet new tool-manifest # if you are setting up this repo dotnet tool install --local NuLink --version 0.1.0-beta1
#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
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
ordotnet 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 | Versions 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. |
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 |