{
  "$schema": "http://json.schemastore.org/template",
  "author": "Microsoft",
  "classifications": [
    "Common",
    "Library"
  ],
  "name": "Class Library",
  "generatorVersions": "[1.0.0.0-*)",
  "description": "A project for creating a class library that targets .NET or .NET Standard",
  "groupIdentity": "Microsoft.Common.Library",
  "precedence": "11000",
  "identity": "Microsoft.Common.Library.CSharp.9.0",
  "shortName": "classlib",
  "tags": {
    "language": "C#",
    "type": "project"
  },
  "sourceName": "Company.ClassLibrary1",
  "preferNameDirectory": true,
  "baselines": {
    "app": {
      "description": "Target .NET",
      "defaultOverrides": {
        "Framework": "net9.0"
      }
    },
    "standard": {
      "description": "Target netstandard",
      "defaultOverrides": {
        "Framework": "netstandard2.0"
      }
    }
  },
  "symbols": {
    "TargetFrameworkOverride": {
      "type": "parameter",
      "description": "Overrides the target framework",
      "replaces": "TargetFrameworkOverride",
      "datatype": "string",
      "defaultValue": "",
      "displayName": "Target framework override"
    },
    "Framework": {
      "type": "parameter",
      "description": "The target framework for the project.",
      "datatype": "choice",
      "choices": [
        {
          "choice": "net9.0",
          "description": "Target net9.0",
          "displayName": ".NET 9.0"
        },
        {
          "choice": "netstandard2.1",
          "description": "Target netstandard2.1",
          "displayName": ".NET Standard 2.1"
        },
        {
          "choice": "netstandard2.0",
          "description": "Target netstandard2.0",
          "displayName": ".NET Standard 2.0"
        }
      ],
      "replaces": "net9.0",
      "defaultValue": "net9.0",
      "displayName": "Framework"
    },
    "langVersion": {
      "type": "parameter",
      "datatype": "text",
      "description": "Sets the LangVersion property in the created project file",
      "defaultValue": "",
      "replaces": "$(ProjectLanguageVersion)",
      "displayName": "Language version"
    },
    "HostIdentifier": {
      "type": "bind",
      "binding": "host:HostIdentifier"
    },
    "skipRestore": {
      "type": "parameter",
      "datatype": "bool",
      "description": "If specified, skips the automatic restore of the project on create.",
      "defaultValue": "false",
      "displayName": "Skip restore"
    },
    "csharp9orOlder": {
      "type": "generated",
      "generator": "regexMatch",
      "datatype": "bool",
      "parameters": {
        "pattern": "^(ISO-1|ISO-2|[1-7]|[8-9]|[8-9]\\.0|7\\.[0-3])$",
        "source": "langVersion"
      }
    },
    "csharp7orOlder": {
      "type": "generated",
      "generator": "regexMatch",
      "datatype": "bool",
      "parameters": {
        "pattern": "^(ISO-1|ISO-2|[1-7]|7\\.[0-3])$",
        "source": "langVersion"
      }
    },
    "csharp10orLater": {
      "type": "computed",
      "value": "!csharp9orOlder"
    },
    "csharp8orLater": {
      "type": "computed",
      "value": "!csharp7orOlder"
    },
    "csharpFeature_ImplicitUsings": {
      "type": "computed",
      "value": "Framework == \"net9.0\" && csharp10orLater == \"true\""
    },
    "csharpFeature_FileScopedNamespaces": {
      "type": "computed",
      "value": "(Framework == \"net9.0\" || langVersion != \"\") && csharp10orLater == \"true\""
    },
    "csharpFeature_Nullable": {
      "type": "computed",
      "value": "(Framework != \"netstandard2.0\" || langVersion != \"\") && csharp8orLater == \"true\""
    }
  },
  "primaryOutputs": [
    {
      "path": "Company.ClassLibrary1.csproj"
    },
    {
      "condition": "(HostIdentifier != \"dotnetcli\" && HostIdentifier != \"dotnetcli-preview\")",
      "path": "Class1.cs"
    }
  ],
  "defaultName": "ClassLibrary1",
  "postActions": [
    {
      "id": "restore",
      "condition": "(!skipRestore)",
      "description": "Restore NuGet packages required by this project.",
      "manualInstructions": [
        {
          "text": "Run 'dotnet restore'"
        }
      ],
      "actionId": "210D431B-A78B-4D2F-B762-4ED3E3EA9025",
      "continueOnError": true
    },
    {
      "id": "open-file",
      "condition": "(HostIdentifier != \"dotnetcli\" && HostIdentifier != \"dotnetcli-preview\")",
      "description": "Opens Class1.cs in the editor",
      "manualInstructions": [],
      "actionId": "84C0DA21-51C8-4541-9940-6CA19AF04EE6",
      "args": {
        "files": "1"
      },
      "continueOnError": true
    }
  ]
}
