Skip to content

Commit a72a2c2

Browse files
Document dotnet tools plugin usage (#3379)
1 parent 7560899 commit a72a2c2

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

docs/reference/extensibility/NuGet-Cross-Platform-Plugins.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,18 @@ Under this version, the requirements are as follows:
4747
- Adhere to the negotiated plugin protocol version.
4848
- Respond to all requests within a reasonable time period.
4949
- Honor cancellation requests for any in-progress operation.
50+
- **Starting with NuGet 6.13, executable plugins (including global .NET tools) must follow these requirements:**
51+
- Naming Convention: Must follow the pattern `nuget-plugin-*`.
52+
- Windows:
53+
- Must be either `.exe` or `.bat` files.
54+
- Linux:
55+
- Must have their executable permissions enabled.
5056

5157
The technical specification is described in more detail in the following specs:
5258

5359
- [NuGet Package Download Plugin](https://github.com/NuGet/Home/wiki/NuGet-Package-Download-Plugin)
5460
- [NuGet cross plat authentication plugin](https://github.com/NuGet/Home/wiki/NuGet-cross-plat-authentication-plugin)
61+
- [Dotnet Tools Plugins](https://github.com/NuGet/Home/blob/dev/accepted/2024/support-nuget-authentication-plugins-dotnet-tools.md)
5562

5663
## Client - Plugin interaction
5764

@@ -70,7 +77,14 @@ CI/CD scenarios and power users can use environment variables to override the be
7077

7178
- `NUGET_NETFX_PLUGIN_PATHS` - defines the plugins that will be used by the .NET Framework based tooling (NuGet.exe/MSBuild.exe/Visual Studio). Takes precedence over `NUGET_PLUGIN_PATHS`. (NuGet version 5.3+ only)
7279
- `NUGET_NETCORE_PLUGIN_PATHS` - defines the plugins that will be used by the .NET Core based tooling (dotnet.exe). Takes precedence over `NUGET_PLUGIN_PATHS`. (NuGet version 5.3+ only)
73-
- `NUGET_PLUGIN_PATHS` - defines the plugins that will be used for that NuGet process, priority preserved. If this environment variable is set, it overrides the convention based discovery. Ignored if either of the framework specific variables is specified.
80+
- `NUGET_PLUGIN_PATHS`
81+
- defines the plugins that will be used for that NuGet process, priority preserved. If this environment variable is set, it overrides the convention based discovery. Ignored if either of the framework specific variables is specified.
82+
83+
- **Starting with NuGet 6.13:**
84+
- Can specify paths to executable plugin files, including .NET tools plugins.
85+
- Supports both file paths and folders containing plugin files.
86+
- **Windows:** Supports `.exe` and `.bat` files.
87+
- **Linux:** Requires executable permissions (`chmod +x`).
7488
- User-location, the NuGet Home location in `%UserProfile%/.nuget/plugins`. This location cannot be overriden. A different root directory will be used for .NET Core and .NET Framework plugins.
7589

7690
| Framework | Root discovery location |

0 commit comments

Comments
 (0)