<Project Sdk="Microsoft.NET.Sdk">

  <!--
    Differential test suite: verifies the reconstructed TeslaConsole.exe behaves
    identically to the original (reference baseline in ../../original).

    Targets net48 on purpose: the comparison loads BOTH assemblies (which share
    the exact same assembly identity, TeslaConsole 4.11.3.37076) into separate
    AppDomains, which only the .NET Framework runtime supports.
  -->
  <PropertyGroup>
    <TargetFramework>net48</TargetFramework>
    <LangVersion>latest</LangVersion>
    <Nullable>disable</Nullable>
    <ImplicitUsings>disable</ImplicitUsings>
    <IsPackable>false</IsPackable>
    <AssemblyName>TeslaConsole.DiffTests</AssemblyName>
    <RootNamespace>TeslaConsole.DiffTests</RootNamespace>
  </PropertyGroup>

  <ItemGroup>
    <!-- net48 reference assemblies so this builds without a full targeting pack installed -->
    <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.3" PrivateAssets="all" />
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
    <PackageReference Include="xunit" Version="2.6.6" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.5.6" />
  </ItemGroup>

  <ItemGroup>
    <Reference Include="System.Drawing" />
    <Reference Include="System.Xml" />
  </ItemGroup>

  <ItemGroup>
    <!--
      Build the reconstruction before the tests so we always compare against a fresh
      build. ReferenceOutputAssembly=false: we load it by path via reflection, and
      copying it next to the tests would collide with the original's identical identity.
    -->
    <ProjectReference Include="..\..\TeslaConsole.csproj">
      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
      <Private>false</Private>
    </ProjectReference>
    <!-- The source-built wire contract (emits TeslaConsoleLaunchLib.dll). Referenced
         directly so WireContractCompatTests can construct Tesla.Net types and compare
         their BinaryFormatter output against the original vendored DLL. -->
    <ProjectReference Include="..\..\..\Contract\Tesla.Contract.csproj" />
    <!-- The source-built secure-config (emits TeslaSecureConfiguration.dll), for
         SecureConfigCompatTests' byte-identity checks vs the original vendored DLL. -->
    <ProjectReference Include="..\..\..\SecureConfig\Tesla.SecureConfig.csproj" />
  </ItemGroup>

</Project>
