---
title: Proxy generator configuration
description: MSBuild properties, mapping items, defaults, and CLI differences.
---


Configure generation through properties and items **inside the existing `.csproj`'s `Project` element**. The examples in these reference pages are project fragments, not standalone project files. Item `Include` values supply MSBuild identities; the generator consumes each item's named metadata.

## Choose a topic

- [Basic options](/arc/backend/csharp/proxy-generation/configuration/basic/): output path, namespace segments, source-file grouping, decorators.
- [Library mode](/arc/backend/csharp/proxy-generation/configuration/library-mode/): collect models beyond endpoint references; separate CLI interface output.
- [Emit interfaces](/arc/backend/csharp/proxy-generation/configuration/emit-interfaces/): plain interfaces with no decorators and no runtime dependency.
- [Type exclusions](/arc/backend/csharp/proxy-generation/configuration/type-exclusions/): omit types or namespace patterns.
- [Namespace roots](/arc/backend/csharp/proxy-generation/configuration/namespace-roots/): remap output folders without changing API routes.
- [Assembly-to-package mappings](/arc/backend/csharp/proxy-generation/configuration/assembly-package-mappings/): import shared model packages.
- [Type mapping](/arc/backend/csharp/proxy-generation/type-mapping/): primitive mappings and `TypeToTsType` overrides.
- [Routing](/arc/backend/csharp/proxy-generation/configuration/routing/): conventional model-bound route options and runtime alignment.
- [Output behavior](/arc/backend/csharp/proxy-generation/configuration/output-behavior/): incremental writes, full deletion, and cleanup limitations.

## MSBuild reference

| Property or item | Default / required metadata | Topic |
| --- | --- | --- |
| `CratisProxiesOutputPath` | Empty disables generation | [Basic](/arc/backend/csharp/proxy-generation/configuration/basic/) |
| `CratisProxiesSegmentsToSkip` | Empty resolves to `0` | [Basic](/arc/backend/csharp/proxy-generation/configuration/basic/) |
| `CratisProxiesUseSourceFileAsOutputFile` | Off unless `true` | [Basic](/arc/backend/csharp/proxy-generation/configuration/basic/) |
| `CratisProxiesLibraryMode` | `false` | [Library mode](/arc/backend/csharp/proxy-generation/configuration/library-mode/) |
| `CratisProxiesEmitInterfaces` | `false` | [Emit interfaces](/arc/backend/csharp/proxy-generation/configuration/emit-interfaces/) |
| `ExcludeType` item | `Include`, `TypeName` | [Exclusions](/arc/backend/csharp/proxy-generation/configuration/type-exclusions/) |
| `ExcludeNamespace` item | `Include`, `Namespace` | [Exclusions](/arc/backend/csharp/proxy-generation/configuration/type-exclusions/) |
| `NamespaceRoot` item | `Include`, `Namespace`, `Folder` (may be empty) | [Namespace roots](/arc/backend/csharp/proxy-generation/configuration/namespace-roots/) |
| `AssemblyToPackageMapping` item | `Include`, `Assembly`, `Package` | [Package mappings](/arc/backend/csharp/proxy-generation/configuration/assembly-package-mappings/) |
| `TypeToTsType` item | `Include`, `TypeName`, `TsType`; optional `Package` | [Type mapping](/arc/backend/csharp/proxy-generation/type-mapping/) |
| `CratisProxiesSkipCommandNameInRoute` | `false` | [Routing](/arc/backend/csharp/proxy-generation/configuration/routing/) |
| `CratisProxiesSkipQueryNameInRoute` | `false` | [Routing](/arc/backend/csharp/proxy-generation/configuration/routing/) |
| `CratisProxiesApiPrefix` | `api` | [Routing](/arc/backend/csharp/proxy-generation/configuration/routing/) |
| `CratisProxiesSkipIndexGeneration` | Off unless `true` | [Output behavior](/arc/backend/csharp/proxy-generation/configuration/output-behavior/) |
| `CratisProxiesSkipOutputDeletion` | `true` in MSBuild; direct executable differs | [Output behavior](/arc/backend/csharp/proxy-generation/configuration/output-behavior/) |
| `CratisProxiesSkipFileIndexTracking` | `false`; setting `true` is currently ignored by the executable | [Output behavior](/arc/backend/csharp/proxy-generation/configuration/output-behavior/) |
