ALSI.WorkspaceExplorer
0.1.0
See the version list below for details.
dotnet tool install --global ALSI.WorkspaceExplorer --version 0.1.0
dotnet new tool-manifest
dotnet tool install --local ALSI.WorkspaceExplorer --version 0.1.0
#tool dotnet:?package=ALSI.WorkspaceExplorer&version=0.1.0
nuke :add-package ALSI.WorkspaceExplorer --version 0.1.0
<div align="center">
<img src="assets/dotnet-workspace-explorer.svg" width="128" height="128" alt="dotnet-workspace-explorer logo">
dotnet-workspace-explorer
A .NET solution explorer for the command line and editors.
</div>
Workspace Explorer reads and edits .NET solutions. It works with .sln and .slnx files across
C#, F#, and Visual Basic projects. Solution filters (.slnf) are available as read-only views.
Install
dotnet tool install --global ALSI.WorkspaceExplorer
Run it as either dotnet-we or dotnet we:
dotnet-we solution ./Demo.slnx list
dotnet we solution ./Demo.slnx list
Use
Add a project:
dotnet-we solution ./Demo.slnx add ./src/Demo.Core/Demo.Core.csproj
List the projects in a solution or read-only solution filter:
dotnet-we solution ./Demo.sln list
dotnet-we solution ./Demo.slnf list
Run normal .NET commands against a selected workspace:
dotnet-we build ./Demo.slnx --configuration Release
dotnet-we test ./Demo.slnx
Workspace Explorer checks changes before it writes them. Editor clients preview changes first and send the expected workspace revision when they apply them.
JSON output
Add --json when another program needs the result:
dotnet-we --json solution ./Demo.slnx list
A successful command returns JSON like this:
{
"commandId": "solution",
"diagnostics": [],
"externalExitCode": 0,
"result": {
"childArguments": [
"solution",
"./Demo.slnx",
"list"
],
"standardError": "",
"standardOutput": "Project(s)\n----------\nsrc/Demo.Core/Demo.Core.csproj\n",
"summary": "dotnet command completed"
},
"revision": 0,
"schemaVersion": 1,
"success": true
}
Errors use the same shape and include diagnostics:
{
"commandId": "solution",
"diagnostics": [
{
"artifactPath": null,
"code": "external_tool_failed",
"correlationId": "1b724f33-3943-48fd-85cc-cdc3e02a26c6",
"location": null,
"retryable": true,
"safeMessage": "The dotnet command failed.",
"severity": "Error"
}
],
"externalExitCode": 1,
"result": {
"childArguments": [
"solution",
"./Missing.slnx",
"list"
],
"standardError": "Could not find solution or directory `./Missing.slnx`.\n",
"standardOutput": "",
"summary": null
},
"revision": null,
"schemaVersion": 1,
"success": false
}
Editor integration
Editors can start the MessagePack-RPC server for a workspace:
dotnet-we workspace ./Demo.slnx --pipe
Project export uses three workers by default. Set a different capacity when needed:
dotnet-we workspace ./Demo.slnx --pipe --export-workers 4
The Neovim integration is available from
dotnet-workspace-explorer.nvim.
Protocol details are in:
Development
The repository uses .NET 10:
dotnet tool restore
dotnet restore Dotnet.WorkspaceExplorer.slnx
dotnet build Dotnet.WorkspaceExplorer.slnx --configuration Release --no-restore
Performance results and methods are under docs/benchmarking.
License
MIT. See LICENSE.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.