Universal Silent Setup Finder / Console — a C# port of alexandruavadanii/USSF, reimagined as a cross-platform, headless command-line tool.
Given an installer (or any binary stream), ussfc identifies the packaging format and prints the silent-install command line to use.
- Version: 1.4.1.2 (inherited from the upstream AutoIt project)
- Runtime: .NET 10 file-based app (single
.cssource, no.csproj) - License: Apache-2.0
Pick the option that fits your workflow.
The fastest way to try ussfc. dnx is a one-shot tool runner shipped with the .NET 10 SDK; the first invocation downloads the package to your NuGet cache, subsequent runs are instant.
dnx ussfc setup.exeIf dnx isn't on your PATH, the equivalent works in any .NET 10 environment:
dotnet tool exec ussfc -- setup.exeFor repeated use, install once and call ussfc directly from any directory:
dotnet tool install -g ussfc
ussfc setup.exeUpdate with dotnet tool update -g ussfc, remove with dotnet tool uninstall -g ussfc.
Grab the archive for your platform from the Releases page:
| Platform | Archive |
|---|---|
| Windows x64 | ussfc-win-x64.zip |
| Windows ARM64 | ussfc-win-arm64.zip |
| Linux x64 | ussfc-linux-x64.tar.gz |
| Linux ARM64 | ussfc-linux-arm64.tar.gz |
| macOS ARM64 (M1+) | ussfc-osx-arm64.tar.gz |
Each archive contains a single NativeAOT-compiled ussfc (or ussfc.exe) binary — no .NET runtime install required.
dotnet run ussf.cs -- setup.exeOr, with the shebang on Unix:
chmod +x ussf.cs
./ussf.cs setup.exeussfc [options] <file_path>
<data> | ussfc [options]
| Option | Description |
|---|---|
--json |
Emit the result as JSON instead of human-readable text. |
--help, -h |
Show usage information. |
--version, -v |
Print the version and exit. |
Analyze a file:
ussfc setup.exeFile: setup.exe
Extension: .exe
Type: NSIS Package
Usage: "setup.exe" /S
Emit JSON:
ussfc --json setup.msi{
"file": "setup.msi",
"extension": ".msi",
"type": "MSI File",
"usage": "msiexec.exe /i \"setup.msi\" /qb",
"notes": ""
}Pipe a binary from stdin:
cat setup.exe | ussfc --json| Extension | Type |
|---|---|
.inf |
Information / Installation file |
.reg |
Registry file |
.msi |
Windows Installer package |
.exe |
NSIS, Inno Setup, InstallShield, Wise, 7-Zip, WinZip, UPX, and more |
Detection combines binary-signature matching (MZ, OLE Compound Document, etc.) with extension and text-content fallbacks.
dotnet run ussf.cs -- <args>dotnet publish ussf.cs \
-c Release \
-r <rid> \
--self-contained true \
-p:PublishSingleFile=true \
-o publishWhere <rid> is one of: win-x64, win-arm64, linux-x64, linux-arm64, osx-arm64.
dotnet pack ussf.cs -c Release -o nupkgThe resulting ussfc.<version>.nupkg is a framework-dependent, platform-agnostic .NET tool package (tools/net10.0/any/) that targets net10.0.
Pushing a tag matching v* (e.g. v1.4.1.2) triggers .github/workflows/release.yml, which:
- Builds NativeAOT single-file binaries for five RIDs and bundles them with
README.md/LICENSE. - Packs
ussf.csas a .NET tool NuGet package and pushes it to nuget.org (requires theNUGET_API_KEYrepository secret). - Publishes a GitHub Release with all binary archives, SHA-256 checksums, and the
.nupkg.
The workflow is also runnable on demand via the Run workflow button (workflow_dispatch).
- Original AutoIt implementation: Alexandru Avadanii (Apache-2.0).
- C# port and CLI design: Jung-Hyun Nam.
The version number 1.4.1.2 is preserved from the upstream project's Version.au3 to make the lineage explicit.