# Microsoft.CodeDom.Providers.DotNetCompilerPlatform

**Kind:** Service

**Source:** `Pams/API/Pams.API/Pams.API.csproj` (line 1)

**Part of:** [Pams](subsystem-pams)

NuGet package dependency

`Microsoft.CodeDom.Providers.DotNetCompilerPlatform` is a NuGet dependency declared by `Pams.API.csproj`. It provides CodeDOM compiler providers that allow the legacy-format ASP.NET application to compile C# and Visual Basic source through the configured .NET compiler toolchain.

## Diagram

```mermaid
sequenceDiagram
    participant Build as Build Process
    participant Project as Pams.API.csproj
    participant Package as Microsoft.CodeDom.Providers.DotNetCompilerPlatform
    participant Compiler as .NET Compiler

    Build->>Project: Read NuGet package references
    Project->>Package: Restore compiler provider dependency
    Package->>Compiler: Configure CodeDOM compilation
    Compiler-->>Build: Return compiled application output
```

## Usage

```typescript
import { execFileSync } from "node:child_process";

const projectFile = "Pams/API/Pams.API/Pams.API.csproj";

execFileSync("dotnet", ["restore", projectFile], {
  stdio: "inherit",
});

execFileSync("dotnet", ["build", projectFile], {
  stdio: "inherit",
});
```

## AI Coding Instructions

- Treat this package as a build-time dependency configured through `Pams.API.csproj`, not as an application service with a runtime API.
- Keep the package reference compatible with the project's legacy project format and target framework.
- Restore NuGet dependencies before building the API project in local scripts and CI jobs.
- Do not remove or replace the package without confirming that CodeDOM-based compilation is not required by the application.

## Used by

1 reference from 1 file. Each is a place in this repository where the symbol is actually used — go read one rather than trusting an example.

### Injected or called by (1)

- `Pams.API` — `Pams/API/Pams.API/Pams.API.csproj`:1
