# System.IO.Packaging

**Kind:** Service

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

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

NuGet package dependency

`System.IO.Packaging` is a NuGet package dependency declared by `Pams/HelperTool/HelperTool.csproj`. It supports the HelperTool project when working with package-based file formats through the .NET packaging APIs.

## Diagram

```mermaid
sequenceDiagram
    participant Developer
    participant HelperToolProject as HelperTool.csproj
    participant NuGet
    participant Packaging as System.IO.Packaging

    Developer->>HelperToolProject: Run dotnet restore
    HelperToolProject->>NuGet: Request package dependency
    NuGet->>Packaging: Resolve System.IO.Packaging
    Packaging-->>NuGet: Return package assets
    NuGet-->>HelperToolProject: Restore package reference
    Developer->>HelperToolProject: Run dotnet build
```

## Usage

```ts
import { execFileSync } from "node:child_process";
import path from "node:path";

const projectFile = path.resolve("Pams/HelperTool/HelperTool.csproj");

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

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

## AI Coding Instructions

- Keep `System.IO.Packaging` declared as a NuGet package reference in `Pams/HelperTool/HelperTool.csproj`.
- Run `dotnet restore` after changing package references before building the HelperTool project.
- Treat this dependency as part of the project’s legacy package-format support.
- Avoid adding JavaScript runtime imports for `System.IO.Packaging`; it is consumed by the .NET HelperTool project.

## 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.Core` — `Pams/Core/Pams.Core/Pams.Core.csproj`:1
- `HelperTool` — `Pams/HelperTool/HelperTool.csproj`:1
