<Project ToolsVersion="15.0">
  <Target Name="WriteBuildInfoProps"
          DependsOnTargets="BuildDotnetCliBuildFramework">

    <GetCurrentRuntimeInformation>
      <Output TaskParameter="Rid" PropertyName="HostRid" />
      <Output TaskParameter="OSName" PropertyName="HostOSName" />
      <Output TaskParameter="OSPlatform" PropertyName="HostOSPlatform" />
    </GetCurrentRuntimeInformation>

    <PropertyGroup>
      <IsLinux Condition = " '$(HostOSName)' != 'win' AND '$(HostOSName)' != 'osx' ">True</IsLinux>
      <OSName Condition=" '$(OSName)' == '' AND '$(IsLinux)' != 'True' ">$(HostOSName)</OSName>
      <OSPlatform Condition=" '$(OSPlatform)' == '' AND '$(IsLinux)' != 'True' ">$(HostOSPlatform)</OSPlatform>
      <OSName Condition=" '$(OSName)' == '' AND '$(IsLinux)' == 'True' ">linux</OSName>
      <OSPlatform Condition=" '$(OSPlatform)' == '' AND '$(IsLinux)' == 'True' ">linux</OSPlatform>

      <Architecture Condition=" '$(Architecture)' == '' ">x64</Architecture>
      <Rid Condition=" '$(Rid)' == '' ">$(OSName)-$(Architecture)</Rid>

      <BuildInfoPropsContent>
&lt;Project ToolsVersion=&quot;15.0&quot; xmlns=&quot;http://schemas.microsoft.com/developer/msbuild/2003&quot;&gt;
    &lt;PropertyGroup&gt;
        &lt;Rid&gt;$(Rid)&lt;/Rid&gt;
        &lt;Architecture&gt;$(Architecture)&lt;/Architecture&gt;
        &lt;OSName&gt;$(OSName)&lt;/OSName&gt;
        &lt;OSPlatform&gt;$(OSPlatform)&lt;/OSPlatform&gt;
    &lt;/PropertyGroup&gt;
&lt;/Project&gt;
      </BuildInfoPropsContent>

      <ExistingBuildInfoPropsContent Condition=" Exists('$(BuildInfoProps)') ">
        $([System.IO.File]::ReadAllText($(BuildInfoProps)))
      </ExistingBuildInfoPropsContent>

      <ShouldOverwriteBuildInfoPropsFile>false</ShouldOverwriteBuildInfoPropsFile>
      <ShouldOverwriteBuildInfoPropsFile
        Condition=" '$(ExistingBuildInfoPropsContent.Trim())' != '$(BuildInfoPropsContent.Trim())' ">true</ShouldOverwriteBuildInfoPropsFile>
    </PropertyGroup>

    <WriteLinesToFile File="$(BuildInfoProps)"
                      Lines="$(BuildInfoPropsContent)"
                      Condition=" '$(ShouldOverwriteBuildInfoPropsFile)' == 'true' "
                      Overwrite="true"  />
  </Target>
</Project>
