<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <Nullable>enable</Nullable>
        <TargetFramework>net10.0-windows</TargetFramework>
        <OutputType>WinExe</OutputType>
        <RootNamespace>PCL</RootNamespace>
        <MyType>Custom</MyType>
        <IsWebBootstrapper>false</IsWebBootstrapper>
        <StartupObject>PCL.Program</StartupObject>
        <PublishUrl>publish\</PublishUrl>
        <PublishSingleFile>true</PublishSingleFile>
        <IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>
        <RuntimeIdentifier Condition="'$(Platform)' == 'x64'">win-x64</RuntimeIdentifier>
        <RuntimeIdentifier Condition="'$(Platform)' == 'ARM64'">win-arm64</RuntimeIdentifier>
        <EnableWindowsTargeting>true</EnableWindowsTargeting>
        <MapFileExtensions>true</MapFileExtensions>
        <TargetCulture>zh-CN</TargetCulture>
        <UseApplicationTrust>false</UseApplicationTrust>
        <BootstrapperEnabled>true</BootstrapperEnabled>
        <LangVersion>14</LangVersion>
        <UseWPF>true</UseWPF>
        <Configurations>Beta;Debug;Release;CI</Configurations>
        <Platforms>AnyCPU;x64;ARM64</Platforms>
        <ImplicitUsings>enable</ImplicitUsings>
        <ApplicationManifest>app.manifest</ApplicationManifest>
        <ApplicationIcon>Images\icon.ico</ApplicationIcon>
        <AssemblyTitle>Plain Craft Launcher Community Edition</AssemblyTitle>
        <Description>Minecraft 启动器 (作者: 龙腾猫跃; 经社区二次开发版本)</Description>
        <Product>Plain Craft Launcher Community Edition</Product>
        <Copyright>Copyright © 龙腾猫跃 2016. All Rights Reserved.</Copyright>
        <AssemblyVersion>2.15.0.0</AssemblyVersion>
        <FileVersion>2.15.0.0</FileVersion>
        <NoWarn>
            41999;42016;42017;42018;42019;42020;42021;42022;42032;42036;42314;
            VSTHRD002;VSTHRD003;VSTHRD110;VSTHRD200
        </NoWarn>
        <DefaultItemExcludes>$(DefaultItemExcludes);$(ProjectDir)**\*.vb</DefaultItemExcludes>
    </PropertyGroup>
    <PropertyGroup Condition="'$(Configuration)' == 'Debug'">
        <OutputPath>bin\Debug\</OutputPath>
        <DebugSymbols>true</DebugSymbols>
        <DebugType>full</DebugType>
        <Optimize>false</Optimize>
        <DefineConstants>TRACE;DEBUG</DefineConstants>
    </PropertyGroup>
    <PropertyGroup Condition="'$(Configuration)' == 'CI' Or '$(Configuration)' == 'DebugCI'">
        <OutputPath>bin\CI\</OutputPath>
        <DebugSymbols>true</DebugSymbols>
        <DebugType>full</DebugType>
        <Optimize>false</Optimize>
        <DefineConstants>TRACE;DEBUGCI</DefineConstants>
    </PropertyGroup>
    <PropertyGroup Condition="'$(Configuration)' == 'Release'">
        <OutputPath>bin\Release\</OutputPath>
        <DebugSymbols>false</DebugSymbols>
        <DebugType>none</DebugType>
        <Optimize>true</Optimize>
        <DefineConstants>RELEASE</DefineConstants>
    </PropertyGroup>
    <PropertyGroup Condition="'$(Configuration)' == 'Beta'">
        <OutputPath>bin\Beta\</OutputPath>
        <DebugSymbols>false</DebugSymbols>
        <DebugType>none</DebugType>
        <Optimize>true</Optimize>
        <DefineConstants>BETA</DefineConstants>
    </PropertyGroup>
    <ItemGroup>
        <PackageReference Include="Dapper" Version="2.1.79" />
        <PackageReference Include="DotNet.Glob" Version="3.1.3" />
        <PackageReference Include="Downloader" Version="5.9.4" />
        <PackageReference Include="Markdig.Wpf" Version="0.5.0.1" />
        <PackageReference Include="Microsoft.Data.Sqlite" Version="10.0.9" />
        <PackageReference Include="NAudio" Version="2.3.0" />
        <PackageReference Include="protobuf-net" Version="3.2.56" />
        <PackageReference Include="SQLitePCLRaw.bundle_e_sqlite3" Version="3.0.3" />
        <PackageReference Include="System.Net.Http" Version="4.3.4" />
        <PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" />
    </ItemGroup>
    <ItemGroup>
        <ProjectReference Include="..\PCL.Core\PCL.Core.csproj" />
    </ItemGroup>
    <ItemGroup>
        <Using Include="System.Text.Json" />
        <Using Include="System.Text.Json.Nodes" />
    </ItemGroup>
    <ItemGroup>
        <Import Include="System.IO" />
        <Import Include="System.Net" />
        <Import Include="System.Text" />
        <Import Include="System.Threading" />
        <Import Include="System.Windows" />
        <Import Include="System.Windows.Controls" />
        <Import Include="System.Windows.Data" />
        <Import Include="System.Windows.Documents" />
        <Import Include="System.Windows.Input" />
        <Import Include="System.Windows.Shapes" />
        <Import Include="System.Windows.Media" />
        <Import Include="System.Windows.Media.Imaging" />
    </ItemGroup>
    <!-- 信不过巨硬的智障代码，手动包含需要的文件 -->
    <PropertyGroup>
        <EnableDefaultItems>false</EnableDefaultItems>
        <EnableDefaultCompileItems>false</EnableDefaultCompileItems>
        <EnableDefaultEmbeddedResourceItems>false</EnableDefaultEmbeddedResourceItems>
        <EnableDefaultNoneItems>false</EnableDefaultNoneItems>
        <EnableDefaultApplicationDefinition>false</EnableDefaultApplicationDefinition>
        <EnableDefaultPageItems>false</EnableDefaultPageItems>
    </PropertyGroup>
    <ItemGroup>
        <Compile Include="**\*.cs" Exclude="bin\**;obj\**;publish\**" />
        <ApplicationDefinition Include="Application.xaml" Condition="Exists('Application.xaml')" />
        <ApplicationDefinition Include="App.xaml" Condition="Exists('App.xaml')" />
        <Page Include="**\*.xaml" Exclude="bin\**;obj\**;@(ApplicationDefinition)" />
        <Resource Include="Images\**" />
        <Resource Include="Resources\**" />
        <EmbeddedResource Include="metadata.json" />
    </ItemGroup>
    <ItemGroup>
        <Content Include="LICENCE" />
    </ItemGroup>
</Project>
