# Microsoft.CSharp

**Kind:** Service

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

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

NuGet package dependency

`Microsoft.CSharp` is a NuGet package dependency declared by `Pams/HelperTool/HelperTool.csproj`. It supports C# language features and runtime binding required when the HelperTool project is restored and built.

## Diagram

```mermaid
sequenceDiagram
    participant Developer
    participant Project as HelperTool.csproj
    participant NuGet
    participant Build as .NET Build

    Developer->>Project: Restore and build HelperTool
    Project->>NuGet: Resolve Microsoft.CSharp package
    NuGet-->>Project: Return package assets
    Project->>Build: Include package reference
    Build-->>Developer: Build HelperTool output
```

## Usage

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

execFileSync(
  "dotnet",
  ["build", "Pams/HelperTool/HelperTool.csproj"],
  { stdio: "inherit" },
);
```

## AI Coding Instructions

- Keep `Microsoft.CSharp` declared in `Pams/HelperTool/HelperTool.csproj` when code depends on C# runtime binding behavior.
- Restore NuGet packages before building the HelperTool project.
- Update the package reference through the project file rather than copying package assemblies into the repository.
- Check build output after changing package versions, especially for legacy-format project compatibility.
