<Project>
  <PropertyGroup>
    <HighEntropyVA>true</HighEntropyVA>
    <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
    <TargetFramework>net7.0</TargetFramework>
    <RootDir>$(MSBuildThisFileDirectory)</RootDir>

    <!-- Defaults-->
    <Major Condition="$(Major) == ''">1</Major>
    <Minor Condition="$(Minor) == ''">0</Minor>
    <Build_BuildNumber Condition="'$(Build_BuildNumber)' == ''">0.0</Build_BuildNumber>
    <StableRelease Condition="$(StableRelease) == ''">false</StableRelease>

    <!-- AssemblyVersion should not change for non-major releases. -->
    <AssemblyVersion>$(Major).0.0.0</AssemblyVersion>

    <!-- AssemblyFileVersion should change for every build. -->
    <!-- For preview releases, sample Version = 3.0.20221104.1-preview -->
    <!-- For stable releases, sample Version = 3.0.0 -->
    <VersionPrefix>$(Major).$(Minor).$(Build_BuildNumber)</VersionPrefix>
    <VersionPrefix Condition="$(StableRelease.Equals('true'))">$(Major).$(Minor).0</VersionPrefix>
    <VersionSuffix Condition="!$(StableRelease.Equals('true'))">preview</VersionSuffix>
    <AssemblyFileVersion>$(VersionPrefix)-$(VersionSuffix)</AssemblyFileVersion>
    <NuspecProperties>version=$(PackageVersion)</NuspecProperties>

    <ToolsServiceTargetRuntimes>win-x64;win-x86;win-arm64;ubuntu.14.04-x64;ubuntu.16.04-x64;centos.7-x64;rhel.7.2-x64;debian.8-x64;fedora.23-x64;opensuse.13.2-x64;osx.10.11-x64;osx-x64;osx-arm64;linux-x64</ToolsServiceTargetRuntimes>
    <EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
    <EnableNETAnalyzers>true</EnableNETAnalyzers>
    <!-- This is required for IDE0005 to fail the build https://github.com/dotnet/roslyn/issues/41640 -->
    <GenerateDocumentationFile>true</GenerateDocumentationFile>
    <Nullable>enable</Nullable>
  </PropertyGroup>
</Project>
