# What .NET SDK Is Used to Build OfficeCLI Binaries?

> Discover which .NET SDK compiles OfficeCLI binaries. The iOfficeAI OfficeCLI project utilizes the .NET 10 SDK for efficient development and deployment.

- Repository: [OfficeAI/OfficeCLI](https://github.com/iofficeai/OfficeCLI)
- Tags: getting-started
- Published: 2026-07-22

---

**OfficeCLI is compiled using the .NET 10 SDK, with the target framework explicitly set to `net10.0` in the project configuration.**

OfficeCLI is an open-source command-line tool developed by iOfficeAI for automating Microsoft Office tasks. Understanding the specific .NET SDK version ensures developers can compile the source correctly and troubleshoot build issues. The definitive SDK specification resides directly in the project source files on GitHub.

## SDK Version Configuration

The build toolchain for OfficeCLI is governed by the `officecli.csproj` file located at `src/officecli/officecli.csproj`.

### The Project File Configuration

According to the iOfficeAI/OfficeCLI source code, the project file uses standard MSBuild syntax to declare its dependencies and compilation targets. This file serves as the single source of truth for the build environment.

### Target Framework Declaration

The critical line specifying the SDK version appears within the `<TargetFramework>` element:

```xml
<TargetFramework>net10.0</TargetFramework>

```

This directive instructs the .NET build tools to utilize the **.NET 10 SDK** (version 10.0) when compiling, publishing, and packaging the executable. The `net10.0` moniker specifically targets the .NET 10 runtime and API surface.

## Build Configuration Details

Beyond the basic SDK version, the project file contains several important settings that determine how the final binary is produced.

### Single-File and Self-Contained Publishing

The OfficeCLI binary is distributed as a standalone executable that does not require a pre-installed .NET runtime on the target machine. This is achieved through two key MSBuild properties in `src/officecli/officecli.csproj`:

```xml
<OutputType>Exe</OutputType>
<PublishSingleFile>true</PublishSingleFile>
<SelfContained>true</SelfContained>

```

- **`<OutputType>Exe</OutputType>`**: Configures the build to produce a console executable rather than a library.
- **`<PublishSingleFile>true</PublishSingleFile>`**: Bundles the application and its dependencies into a single executable file.
- **`<SelfContained>true</SelfContained>`**: Includes the .NET 10 runtime within the published binary, enabling deployment to machines without the SDK installed.

## How to Build OfficeCLI from Source

Developers can compile OfficeCLI using the .NET 10 SDK with standard CLI commands from the repository root.

### Debug Build

To compile the project in Debug configuration:

```bash
dotnet build src/officecli/officecli.csproj -c Debug

```

This generates intermediate assemblies suitable for development and testing.

### Release Publishing

To create a production-ready, self-contained executable for Windows x64 systems:

```bash
dotnet publish src/officecli/officecli.csproj -c Release -r win-x64 \
    -p:PublishSingleFile=true -p:SelfContained=true -o publish

```

Replace `win-x64` with `linux-x64` or `osx-x64` to target Linux or macOS platforms respectively. The output in `./publish` contains the standalone binary.

### Verify SDK Version

To confirm which SDK version the build system will use:

```bash
dotnet --version

```

When executed from within the project directory, this displays the active .NET SDK version (10.x.x), confirming compatibility with the `net10.0` target framework.

## Key Source Files

The following files in the iOfficeAI/OfficeCLI repository demonstrate how the .NET 10 SDK is leveraged:

| File | Purpose |
|------|---------|
| `src/officecli/officecli.csproj` | Defines the .NET SDK version (`net10.0`), publish settings, and package references. |
| [`src/officecli/Program.cs`](https://github.com/iOfficeAI/OfficeCLI/blob/main/src/officecli/Program.cs) | Entry point for the CLI; bootstraps the command-line engine. |
| [`src/officecli/CommandBuilder.cs`](https://github.com/iOfficeAI/OfficeCLI/blob/main/src/officecli/CommandBuilder.cs) | Core command-parsing logic for the CLI. |
| [`src/officecli/ResidentServer.cs`](https://github.com/iOfficeAI/OfficeCLI/blob/main/src/officecli/ResidentServer.cs) | Implements the resident server used for watch mode and live updates. |
| [`src/officecli/Help/SchemaHelpLoader.cs`](https://github.com/iOfficeAI/OfficeCLI/blob/main/src/officecli/Help/SchemaHelpLoader.cs) | Loads embedded JSON help schemas at runtime. |

## Summary

- OfficeCLI requires the **.NET 10 SDK** for compilation, as specified by `<TargetFramework>net10.0</TargetFramework>` in `src/officecli/officecli.csproj`.
- The project produces a **self-contained, single-file executable** suitable for deployment without runtime prerequisites.
- Build commands use standard `dotnet` CLI tooling with platform-specific runtime identifiers.
- Source files such as [`Program.cs`](https://github.com/iOfficeAI/OfficeCLI/blob/main/Program.cs) and [`CommandBuilder.cs`](https://github.com/iOfficeAI/OfficeCLI/blob/main/CommandBuilder.cs) are compiled against the .NET 10 API surface.

## Frequently Asked Questions

### What version of .NET SDK does OfficeCLI require?

OfficeCLI requires the **.NET 10 SDK**. The `officecli.csproj` file explicitly targets `net10.0`, which corresponds to .NET version 10.0. Attempting to build with older SDK versions (such as .NET 8 or 9) will result in build errors due to missing API surfaces.

### Is the OfficeCLI binary self-contained?

Yes. The project configuration includes `<SelfContained>true</SelfContained>` and `<PublishSingleFile>true</PublishSingleFile>`, which bundles the .NET 10 runtime and all dependencies into a single executable file. This allows the binary to run on machines that do not have the .NET SDK or runtime installed.

### Can I build OfficeCLI on Linux or macOS?

Yes. While the repository includes configurations for Windows (`win-x64`), the `dotnet publish` command accepts other runtime identifiers such as `linux-x64` or `osx-x64`. The .NET 10 SDK is cross-platform, enabling compilation for any supported operating system from any compatible development environment.

### Where is the target framework defined in the source code?

The target framework is defined in `src/officecli/officecli.csproj` within the `<TargetFramework>` XML element. This file is located in the `src/officecli/` directory of the iOfficeAI/OfficeCLI repository and serves as the primary MSBuild project file for the CLI application.