<Project>
  <PropertyGroup>
    <!-- Default properties inherited by all projects. Projects can override. -->
    <RunAnalyzersDuringBuild>true</RunAnalyzersDuringBuild>
    <EnableNETAnalyzers>true</EnableNETAnalyzers>
    <AnalysisMode>AllEnabledByDefault</AnalysisMode>
    <AnalysisLevel>latest</AnalysisLevel>
    <GenerateDocumentationFile>true</GenerateDocumentationFile>
    <LangVersion>10</LangVersion>
    <Nullable>enable</Nullable>
    <ImplicitUsings>disable</ImplicitUsings>
  </PropertyGroup>

  <PropertyGroup>
    <!-- Disable NuGet packaging by default. Projects can override. -->
    <IsPackable>disable</IsPackable>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)'=='Publish'">
    <Optimize>True</Optimize>
  </PropertyGroup>

  <PropertyGroup>
    <RepoRoot>$([System.IO.Path]::GetDirectoryName($([MSBuild]::GetPathOfFileAbove('.gitignore', '$(MSBuildThisFileDirectory)'))))</RepoRoot>
  </PropertyGroup>

  <ItemGroup>
    <!-- Add CLSCompliant=false to all projects by default. Projects can override. -->
    <AssemblyAttribute Include="System.CLSCompliantAttribute">
      <_Parameter1>false</_Parameter1>
    </AssemblyAttribute>
  </ItemGroup>
</Project>