organize-csproj
1.1.3-a
See the version list below for details.
dotnet tool install --global organize-csproj --version 1.1.3-a
dotnet new tool-manifest # if you are setting up this repo dotnet tool install --local organize-csproj --version 1.1.3-a
#tool dotnet:?package=organize-csproj&version=1.1.3-a&prerelease
nuke :add-package organize-csproj --version 1.1.3-a
Usage
Install from NuGet as a global dotnet tool.
Then, use it on a project file:
organize-csproj --input=your-project.csproj
Alternatively, you can use it on a solution file to organize all Projects associated with the solution.
Simply run the below line in the directory where a .sln
file exists.
organize-csproj --scan
CLI Arguments
Use --help
to see command line arguments for the version you're using.
On a Solution File
You can use a solution file to organize all associated project files, you only need to use the --scan
flag:
--scan
Individual Project files
--input
Description: The path to a .csproj
file.
Default: None
Required: Yes
--output
Description: The filename to save the input.csproj
after it has been sorted.
Default: The value of --input
(overwrites existing file)
Required: No
--config
Description: The path to a configuration json file
Default: None
Required: No
Example
dotnet organize-csproj --input=project.csproj --output=project.sorted.csproj --config=my.config.json
Configuration
The default configuration can be seen here: csproj.config.defaults.json It should work as a solid reference to get yourself started. The configuration needs to map to SortConfiguration.cs.
If this isn't sufficient documentation, open an issue and I'll write out more.
Sort Options
Below are the primary steps taken when cleaning up a .csproj
file.
They each can be disabled using your own configuration file, like so:
{
"SortOptions": {
"GroupByNodeType": true,
"GroupByFileType": true,
"RemoveEmptyItemGroups": true,
"SortItemsWithinItemGroups": true
}
}
They all default to true
.
GroupByNodeType
Groups all
Item
s of the same type into their own<ItemGroup>
(e.g.,
<Content>
,<Compile>
,<TypeScriptCompile>
, etc)
GroupByFileType
- Creates
<ItemGroup>
s for each distinct filetype - Subdivides existing
<ItemGroup>
s into even more granular<ItemGroup>
s
- Creates
RemoveEmptyItemGroups
- Removes
<ItemGroup>
s without any children. The tool doesn't create empty<ItemGroup>
s―this option is for tidying up.
- Removes
SortItemsWithinItemGroups
- Whether to alphanum sort all
<ItemGroup>
s. Performed last.
- Whether to alphanum sort all
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 | netcoreapp3.1 is compatible. |
This package has no dependencies.