or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

core-resolution.mddotnet-requirements.mdgeneric-resolution.mdindex.mdjava-requirements.mdpython-requirements.md
tile.json

dotnet-requirements.mddocs/

.NET Requirements Resolution

.NET runtime detection and version validation for AutoRest .NET-based extensions. Provides .NET availability checking with version detection using the dotnet --version command.

Capabilities

.NET Requirement Resolution

Resolves .NET runtime requirements by executing dotnet --version and validating the version output.

/**
 * Resolve .NET runtime requirement
 * @param requirement - .NET requirement configuration
 * @returns Resolution with dotnet command and version, or error details
 */
function resolveDotnetRequirement(
  requirement: SystemRequirement
): Promise<SystemRequirementResolution | SystemRequirementError>;

Usage Example:

import { resolveDotnetRequirement } from "@autorest/system-requirements";

// Basic .NET requirement
const result = await resolveDotnetRequirement({ version: ">=5.0" });
if ("error" in result) {
  console.error(".NET not found or version incompatible:", result.message);
} else {
  console.log(`.NET resolved: ${result.command}`);
  console.log(`.NET name: ${result.name}`); // "dotnet"
}

// Using custom .NET path via environment variable
const customResult = await resolveDotnetRequirement({
  version: ">=6.0",
  environmentVariable: "DOTNET_ROOT"
});

.NET Detection Logic

The .NET resolver follows this detection process:

  1. Environment Variable: If environmentVariable is specified in the requirement, uses that path
  2. System dotnet: Falls back to dotnet command in system PATH
  3. Version Detection: Executes dotnet --version to get version string
  4. Version Validation: Compares detected version against requirement using semantic versioning

Version Detection

.NET version detection uses the dotnet --version command output, which returns the version string directly:

6.0.100

The version string is used as-is for semantic version comparison.

Constants

/** .NET executable name used in system requirement resolution */
const DotnetExeName = "dotnet";

Error Handling

Common .NET resolution errors include:

  • Command not found: dotnet executable is not in PATH and no environment variable specified
  • Version incompatible: .NET version doesn't satisfy the requirement
  • Execution failed: dotnet --version command failed to execute

The resolver provides detailed error messages to help diagnose .NET installation and configuration issues.

.NET Version Compatibility

The resolver supports all .NET versions that respond to the --version flag:

  • .NET 5+: Modern .NET unified platform
  • .NET Core 1.0+: Cross-platform .NET Core versions
  • .NET Framework: May work if dotnet command is available (less common)

Version requirements follow semantic versioning rules, so you can specify:

  • Exact versions: "5.0.100"
  • Minimum versions: ">=6.0"
  • Range versions: ">=5.0 <7.0"