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

  <PropertyGroup>
    <TargetFramework>net8.0-windows</TargetFramework>
    <OutputType>Library</OutputType>
    <RootNamespace>StandardScene</RootNamespace>
    <AssemblyName>StandardScene.Protocol.VDA5050</AssemblyName>
    <LangVersion>latest</LangVersion>
    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
    <Platforms>AnyCPU;x64</Platforms>
    <PlatformTarget>x64</PlatformTarget>
    <Deterministic>true</Deterministic>
    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
    <ImplicitUsings>disable</ImplicitUsings>
    <Nullable>disable</Nullable>
    <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
    <NoWarn>$(NoWarn);NU1701;CS0618;CS0612;MSB3277;CA1416</NoWarn>
    <AssemblySearchPaths>{HintPathFromItem};{TargetFrameworkDirectory};{RawFileName};{GAC}</AssemblySearchPaths>
  </PropertyGroup>

  <!-- 插件清单：随 dll 输出到 plugins/（约定 <dll>.scene.json，对接 SimpleLite /scenes 选择性加载） -->
  <ItemGroup>
    <None Update="StandardScene.Protocol.VDA5050.scene.json" CopyToOutputDirectory="PreserveNewest" />
  </ItemGroup>

  <!-- 基座依赖：导航无关基础类型/字段袋来自 Core（通过 InternalsVisibleTo 访问其 internal 类型） -->
  <ItemGroup>
    <ProjectReference Include="..\StandardScene.Core\StandardScene.Core.csproj" />
  </ItemGroup>

  <!-- CycleGUI：TextViewer 等 UI 已从 WinForms 迁移到 CycleGUI（与 Core 一致，Private=false 由宿主加载） -->

  <!-- 程序集引用：与 Core 保持一致的本地契约/工具 dll -->

  <!-- NuGet：VDA5050/MQTT 协议栈所需 -->
  <ItemGroup>
    <PackageReference Include="MQTTnet" Version="4.3.6.1152" />
    <PackageReference Include="MQTTnet.Extensions.ManagedClient" Version="4.3.6.1152" />
    <PackageReference Include="Nancy" Version="2.0.0" />
    <PackageReference Include="Newtonsoft.Json" Version="13.0.4" />
    <PackageReference Include="Jint" Version="4.6.3" />
  </ItemGroup>
  <ItemGroup>
    <Reference Include="CommonUsage">
      <HintPath>$(StandRefDir)CommonUsage.dll</HintPath>
    </Reference>
    <Reference Include="CycleGUI">
      <HintPath>$(StandRefDir)CycleGUI.dll</HintPath>
    </Reference>
    <Reference Include="LessokajiWeaverUtilities">
      <HintPath>$(StandRefDir)LessokajiWeaverUtilities.dll</HintPath>
    </Reference>
    <Reference Include="MDCSToolBox">
      <HintPath>$(StandRefDir)MDCSToolBox.dll</HintPath>
    </Reference>
    <Reference Include="SimpleCore">
      <HintPath>$(StandRefDir)SimpleCore.dll</HintPath>
    </Reference>
    <Reference Include="SimpleLite">
      <HintPath>$(StandSimpleLiteDir)SimpleLite.dll</HintPath>
    </Reference>
    <Reference Include="Topaz">
      <HintPath>$(StandRefDir)Topaz.dll</HintPath>
    </Reference>
  </ItemGroup>

</Project>
