Files
LanMountainDesktop/LanMountainDesktop/LanMountainDesktop.csproj

142 lines
8.0 KiB
XML

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net10.0</TargetFramework>
<RollForward>LatestMajor</RollForward>
<Nullable>enable</Nullable>
<Version>0.0.0-dev</Version>
<ApplicationManifest>app.manifest</ApplicationManifest>
<ApplicationIcon>Assets\logo_nightly.ico</ApplicationIcon>
<AvaloniaUseCompiledBindingsByDefault>true</AvaloniaUseCompiledBindingsByDefault>
</PropertyGroup>
<!-- Keep Release defaults compatibility-first for desktop dependencies (WebView/interop/reflection). -->
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
<PublishSingleFile>false</PublishSingleFile>
<PublishTrimmed>false</PublishTrimmed>
<PublishReadyToRun>false</PublishReadyToRun>
<DebugSymbols>false</DebugSymbols>
<DebugType>none</DebugType>
</PropertyGroup>
<ItemGroup>
<Folder Include="Models\" />
<AvaloniaResource Include="Assets\**" />
<AvaloniaResource Include="Localization\**" />
<EmbeddedResource Include="Assets\Documents\Privacy.md" />
<EmbeddedResource Include="Localization\*.json" />
<None Include="Localization\*.json" CopyToOutputDirectory="PreserveNewest" />
<None Include="Extensions\Components\*.json" CopyToOutputDirectory="PreserveNewest" />
<None Include="WindowsIdentity\**" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\LanMountainDesktop.Host.Abstractions\LanMountainDesktop.Host.Abstractions.csproj" />
<ProjectReference Include="..\LanMountainDesktop.Shared.Contracts\LanMountainDesktop.Shared.Contracts.csproj" />
<ProjectReference Include="..\LanMountainDesktop.Shared.IPC\LanMountainDesktop.Shared.IPC.csproj" />
<ProjectReference Include="..\LanMountainDesktop.Settings.Core\LanMountainDesktop.Settings.Core.csproj" />
<ProjectReference Include="..\LanMountainDesktop.Appearance\LanMountainDesktop.Appearance.csproj" />
<ProjectReference Include="..\LanMountainDesktop.DesktopComponents.Runtime\LanMountainDesktop.DesktopComponents.Runtime.csproj" />
<ProjectReference Include="..\LanMountainDesktop.DesktopHost\LanMountainDesktop.DesktopHost.csproj" />
<ProjectReference Include="..\LanMountainDesktop.PluginPackaging\LanMountainDesktop.PluginPackaging.csproj" />
<ProjectReference Include="..\LanMountainDesktop.PluginSdk\LanMountainDesktop.PluginSdk.csproj" />
<!-- Launcher 引用已移除 - Launcher 现在是独立应用 -->
</ItemGroup>
<ItemGroup>
<PackageReference Include="Avalonia" />
<PackageReference Include="Avalonia.Controls.WebView" />
<PackageReference Include="Avalonia.Desktop" />
<PackageReference Include="Avalonia.Themes.Fluent" />
<PackageReference Include="Avalonia.Fonts.Inter" />
<!--Condition below is needed to remove developer tools support from build output in Release configuration.-->
<PackageReference Include="AvaloniaUI.DiagnosticsSupport">
<IncludeAssets Condition="'$(Configuration)' != 'Debug'">None</IncludeAssets>
<PrivateAssets Condition="'$(Configuration)' != 'Debug'">All</PrivateAssets>
</PackageReference>
<PackageReference Include="CommunityToolkit.Mvvm" />
<PackageReference Include="Downloader" />
<PackageReference Include="FluentAvaloniaUI" />
<PackageReference Include="FluentIcons.Avalonia" />
<PackageReference Include="Lib.Harmony.Thin" />
<PackageReference Include="Material.Avalonia" />
<PackageReference Include="Material.Icons.Avalonia" />
<PackageReference Include="ClassIsland.Markdown.Avalonia" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" />
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" />
<PackageReference Include="Microsoft.Data.Sqlite" />
<PackageReference Include="MudTools.OfficeInterop" />
<PackageReference Include="MudTools.OfficeInterop.Word" />
<PackageReference Include="MudTools.OfficeInterop.Excel" />
<PackageReference Include="MudTools.OfficeInterop.PowerPoint" />
<PackageReference Include="PortAudioSharp2" />
<PackageReference Include="MaterialColorUtilities" />
<PackageReference Include="PostHog" />
<PackageReference Include="Sentry" />
<PackageReference Include="System.Runtime.WindowsRuntime" />
<PackageReference Include="System.Drawing.Common" />
<PackageReference Include="YamlDotNet" />
<PackageReference Include="Tmds.DBus.Protocol" />
<PackageReference Include="log4net" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ThirdParty\DotNetCampus.InkCanvas\DotNetCampus.AvaloniaInkCanvas.Avalonia12.csproj" />
</ItemGroup>
<!-- Launcher 构建目标已移除 - Launcher 现在是独立应用,由 CI/CD 单独构建 -->
<!-- 生成版本信息文件 -->
<Target Name="GenerateVersionFile" AfterTargets="Build">
<PropertyGroup>
<VersionFilePath>$(OutDir)version.json</VersionFilePath>
<AppVersion>$(Version)</AppVersion>
<AppCodename>Administrate</AppCodename>
</PropertyGroup>
<Exec Command="powershell -ExecutionPolicy Bypass -File &quot;$(MSBuildProjectDirectory)\..\scripts\Generate-VersionFile.ps1&quot; -OutputPath &quot;$(VersionFilePath)&quot; -Version &quot;$(AppVersion)&quot; -Codename &quot;$(AppCodename)&quot;" Condition="'$(OS)' == 'Windows_NT'" />
<Exec Command="pwsh -ExecutionPolicy Bypass -File &quot;$(MSBuildProjectDirectory)\..\scripts\Generate-VersionFile.ps1&quot; -OutputPath &quot;$(VersionFilePath)&quot; -Version &quot;$(AppVersion)&quot; -Codename &quot;$(AppCodename)&quot;" Condition="'$(OS)' != 'Windows_NT'" />
</Target>
<!-- 发布时也生成版本信息文件 -->
<Target Name="GenerateVersionFilePublish" AfterTargets="Publish">
<PropertyGroup>
<VersionFilePath>$(PublishDir)version.json</VersionFilePath>
<AppVersion>$(Version)</AppVersion>
<AppCodename>Administrate</AppCodename>
</PropertyGroup>
<Exec Command="powershell -ExecutionPolicy Bypass -File &quot;$(MSBuildProjectDirectory)\..\scripts\Generate-VersionFile.ps1&quot; -OutputPath &quot;$(VersionFilePath)&quot; -Version &quot;$(AppVersion)&quot; -Codename &quot;$(AppCodename)&quot;" Condition="'$(OS)' == 'Windows_NT'" />
<Exec Command="pwsh -ExecutionPolicy Bypass -File &quot;$(MSBuildProjectDirectory)\..\scripts\Generate-VersionFile.ps1&quot; -OutputPath &quot;$(VersionFilePath)&quot; -Version &quot;$(AppVersion)&quot; -Codename &quot;$(AppCodename)&quot;" Condition="'$(OS)' != 'Windows_NT'" />
</Target>
<Target Name="BuildAirAppHostOutput"
AfterTargets="Build"
Condition="'$(BuildingAirAppHost)' != 'true' and '$(SkipAirAppHostBuild)' != 'true'">
<Exec Command="dotnet build &quot;$(MSBuildProjectDirectory)\..\LanMountainDesktop.AirAppHost\LanMountainDesktop.AirAppHost.csproj&quot; -c &quot;$(Configuration)&quot; --no-restore -p:BuildProjectReferences=false -p:BuildingAirAppHost=true" />
</Target>
<Target Name="CopyAirAppHostOutput"
AfterTargets="Build"
DependsOnTargets="BuildAirAppHostOutput"
Condition="'$(SkipAirAppHostBuild)' != 'true'">
<ItemGroup>
<_AirAppHostOutput Include="..\LanMountainDesktop.AirAppHost\bin\$(Configuration)\$(TargetFramework)\**\*" />
</ItemGroup>
<MakeDir Directories="$(OutDir)AirAppHost" />
<Copy SourceFiles="@(_AirAppHostOutput)"
DestinationFiles="@(_AirAppHostOutput->'$(OutDir)AirAppHost\%(RecursiveDir)%(Filename)%(Extension)')"
SkipUnchangedFiles="true" />
</Target>
<Target Name="CopyAirAppHostPublishOutput"
AfterTargets="Publish"
Condition="'$(PublishDir)' != '' and '$(AirAppHostPublishDir)' != '' and '$(SkipAirAppHostBuild)' != 'true'">
<ItemGroup>
<_AirAppHostPublishOutput Include="$(AirAppHostPublishDir)\**\*" />
</ItemGroup>
<MakeDir Directories="$(PublishDir)AirAppHost" />
<Copy SourceFiles="@(_AirAppHostPublishOutput)"
DestinationFiles="@(_AirAppHostPublishOutput->'$(PublishDir)AirAppHost\%(RecursiveDir)%(Filename)%(Extension)')"
SkipUnchangedFiles="true" />
</Target>
</Project>