# System.Core

**Kind:** Service

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

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

NuGet package dependency

`System.Core` is a NuGet package dependency declared by `Pams/HelperTool/HelperTool.csproj`. The HelperTool project restores this dependency during build so its referenced assembly is available when compiling and running the tool.

## Diagram

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

    Developer->>Project: Declare System.Core dependency
    Project->>NuGet: Restore package metadata
    NuGet-->>Project: Resolve System.Core assembly
    Project->>Build: Include resolved reference
    Build-->>Developer: Compile HelperTool
```

## Usage

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

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

execFileSync(
  "dotnet",
  ["add", projectFile, "package", "System.Core"],
  { stdio: "inherit" }
);

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

## AI Coding Instructions

- Keep the `System.Core` dependency declaration aligned with the package format already used by `HelperTool.csproj`.
- Restore dependencies after changing package references before building the HelperTool project.
- Treat `System.Core` as a project dependency rather than a TypeScript or JavaScript runtime package.
- Check target framework compatibility before changing the dependency version or package source.
