# WindowsBase

**Kind:** Service

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

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

NuGet package dependency

`WindowsBase` is a NuGet package dependency declared by `Pams/HelperTool/HelperTool.csproj`. The HelperTool project restores this package during build so its .NET code can reference WindowsBase APIs.

## Diagram

```mermaid
sequenceDiagram
    participant Build as Build process
    participant Project as HelperTool.csproj
    participant NuGet as NuGet restore
    participant Package as WindowsBase
    participant Tool as HelperTool

    Build->>Project: Load package references
    Project->>NuGet: Restore dependencies
    NuGet->>Package: Download WindowsBase
    Package-->>NuGet: Package assets
    NuGet-->>Project: Restore completed
    Build->>Tool: Compile with WindowsBase reference
```

## Usage

```ts
import { execa } from "execa";

async function restoreHelperTool() {
  await execa("msbuild", [
    "Pams/HelperTool/HelperTool.csproj",
    "/t:Restore",
  ]);

  await execa("msbuild", [
    "Pams/HelperTool/HelperTool.csproj",
  ]);
}

await restoreHelperTool();
```

## AI Coding Instructions

- Keep the `WindowsBase` package reference in `Pams/HelperTool/HelperTool.csproj`.
- Restore NuGet packages before building HelperTool in local scripts and CI jobs.
- Treat this dependency as project-level .NET configuration; JavaScript and TypeScript code should invoke the HelperTool build or executable rather than import `WindowsBase`.
- Check compatibility with the project target framework before changing the package reference or migrating the legacy project format.

## Used by

2 references from 2 files. 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 (2)

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