# CommandUpToDateCheck

- Kind: `class`
- Package: [Aspire.TypeSystem](/reference/api/csharp/aspire.typesystem.md)
- Version: `13.6.0`
- Namespace: `Aspire.TypeSystem`
- Target framework: `net10.0`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/f4c27f2d43ddc1cacd0dd083b30d1fea1cee7a62/src/Aspire.TypeSystem/RuntimeSpec.cs)

Declares the inputs, outputs, and stamp file that let the CLI skip a command whose work is already done.

## Definition

```csharp
namespace Aspire.TypeSystem;

public sealed class CommandUpToDateCheck
{
    // ...
}
```

## Remarks

This exists for compilers that have no incremental mode of their own. `javac` given an explicit list of source files recompiles all of them every time, so an AppHost that has not changed still pays a full compile of the generated SDK on every launch. Toolchains that are already incremental ( `cargo`, for instance) do not need this.

## Constructors

- [CommandUpToDateCheck](/reference/api/csharp/aspire.typesystem/commanduptodatecheck/constructors.md#constructor)

## Properties

- [FileExtensions](/reference/api/csharp/aspire.typesystem/commanduptodatecheck/properties.md#fileextensions) : `string[]?` `get; init` -- Gets the file extensions, including the leading dot, that identify input files. Null or empty means every file found under [CommandUpToDateCheck.Inputs](/reference/api/csharp/aspire.typesystem/commanduptodatecheck/properties.md#inputs) counts.
- [Inputs](/reference/api/csharp/aspire.typesystem/commanduptodatecheck/properties.md#inputs) : `string[]` `get; init` -- Gets the inputs to compare against the stamp file, relative to the working directory unless absolute. Supports the same placeholders as [CommandSpec.Args](/reference/api/csharp/aspire.typesystem/commandspec/properties.md#args).
- [Outputs](/reference/api/csharp/aspire.typesystem/commanduptodatecheck/properties.md#outputs) : `string[]?` `get; init` -- Gets the outputs that must exist for the command to be considered up to date, relative to the working directory unless absolute. Supports the same placeholders as [CommandSpec.Args](/reference/api/csharp/aspire.typesystem/commandspec/properties.md#args). Null or empty preserves the stamp-and-input-only behavior of older runtime specifications.
- [StampFile](/reference/api/csharp/aspire.typesystem/commanduptodatecheck/properties.md#stampfile) : `string` `get; init` -- Gets the file, relative to the working directory unless absolute, written after the command succeeds and compared against the inputs on the next launch.
