sln-items-sync
1.2.1
See the version list below for details.
dotnet tool install --global sln-items-sync --version 1.2.1
dotnet new tool-manifest # if you are setting up this repo dotnet tool install --local sln-items-sync --version 1.2.1
#tool dotnet:?package=sln-items-sync&version=1.2.1
nuke :add-package sln-items-sync --version 1.2.1
SolutionItems sync tool
Run this against a .sln
file with a list of paths and it will update the solution items to match
Install
dotnet tool install --global sln-items-sync
You'll need ~/.dotnet/tools
on the PATH if it isn't already.
Update
dotnet tool update -g sln-items-sync
Usage
sln-items-sync --solution sln-items-sync.sln README.md .github
Files and folders will be recursively add/removed to match the filesystem.
SolutionItems
folder will be created and populated if missing. The name can be customized with --folder
.
License
Development
This tool is made possible by the SlnEditor nuget package which provides parsing of .sln
files, the ability to modify them in-memory with an object model, and then to write them back to string format with ordering largely preserved intact.
There is a suite of tests that use a real filesystem to provide end to end coverage of the tool, only stopping short of testing the real binary (instead calling the same entry point as the main program). Any pull requests need to show their modified behaviour in these tests.
There are .sh scripts for upgrading dotnet-core and nuget dependencies in the repo root. With the tests we can ship these patches with high confidence.
The dotnet version last worked with locally is controlled by .tool-versions which allows asdf-vm to make the correct version available. If you don't already have it, install it and then run asdf install
to set up dotnet-core at the right version. It's a great tool so well worth taking the time.
Backstory
If you're interested in how this came about read the genesis story of sln-items-sync on my blog.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. 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. |
This package has no dependencies.
Version | Downloads | Last updated |
---|---|---|
1.6.0 | 71 | 11/20/2024 |
1.5.0 | 61 | 11/20/2024 |
1.4.0 | 64 | 11/19/2024 |
1.3.2 | 183 | 5/24/2024 |
1.3.1 | 273 | 2/15/2024 |
1.3.0 | 179 | 2/15/2024 |
1.2.2 | 214 | 2/14/2024 |
1.2.1 | 174 | 1/29/2024 |
1.2.0 | 162 | 1/18/2024 |
1.1.3 | 156 | 1/17/2024 |
1.1.2 | 189 | 1/11/2024 |
1.1.1 | 194 | 1/8/2024 |
1.1.0 | 174 | 1/8/2024 |
1.0.3 | 172 | 1/8/2024 |
1.0.2 | 175 | 1/7/2024 |
1.0.1 | 180 | 1/7/2024 |
1.0.0 | 173 | 1/7/2024 |