Tool for deduplication of Conditional sections inside MSbuild project files typically used for vcxproj
© 2026 Stormshield
VcxprojSimplifier.exe [--debug|--go] <file.vcxproj> […]
--debugwill produce many intermediate files, one after each simplification step--gowill overwrite the original file (not compatible with--debug). Otherwise, the output file will have the.simplifiedextension added.
It is a prerequisite to install the .NET 8.0 Runtime (or a later runtime). This
can be done with:
winget install --exact --id Microsoft.DotNet.Runtime.8
Exit code 0 means success, other values mean failure.
Please version your files and review the changes made by this tool.
There are some limitations, including:
- XML Comments may be misplaced after transformations
- Attributes containing line break characters (CR/LF) will have them replaced with spaces.
This can break multi-line
<Exec>command lines! This is a limitation of the XML parser.
How to simplify all my files?
First, read the notes above. Have your originals saved and be sure you can review the diffs.
I suggest using fd (rust package fd-find). With this tool, you can use:
fd -e vcxproj -X "<path/to/VcxprojSimplifier.exe>" --go
Your pull requests are welcome and will be reviewed.
If you wish to submit a problem, please:
- run with
--debugand find, inside the step files (.transform00001and further), what step introduced the problem first.
If this is the00001parsestep, there is probably nothing we can do. - try to provide a minimal example and indicate what step caused the problem, with initial values, expected outcome and actual outcome.
This product works offline. Our code will not use the network other than for accessing the files you specified on the command line.
This product was written, reviewed and tested by humans.
It will never interact with LLMs at runtime.
You may use AI agents to find problems and get code change suggestions, but please have a human involved in submitting issues or merge requests.