mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-06-22 00:54:26 +08:00
Introduce a new LanMountainDesktop.Shared.IPC project implementing a public IPC host and client (LanMountainDesktopIpcClient, PublicIpcHostService), IPC constants and routed notify IDs, DTOs and DI helpers for registering public services. Update Plugin SDK to allow plugins to contribute public IPC services and registrations, add related descriptors/records and extension helpers. Migrate Launcher/App to use the new public IPC for startup/loading notifications and wiring (including TryConnect helper), switch LoadingStateReporter to use the external notification publisher, and add host-side public services (app info, shell control, plugin catalog). Include integration tests and spec/checklist/docs for the external IPC public API.
108 lines
6.6 KiB
XML
108 lines
6.6 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
<PropertyGroup>
|
|
<OutputType>WinExe</OutputType>
|
|
<TargetFramework>net10.0</TargetFramework>
|
|
<RollForward>LatestMajor</RollForward>
|
|
<Nullable>enable</Nullable>
|
|
<Version>1.0.0</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" />
|
|
</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.PluginSdk\LanMountainDesktop.PluginSdk.csproj" />
|
|
<!-- Launcher 引用已移除 - Launcher 现在是独立应用 -->
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<PackageReference Include="Avalonia" Version="11.3.12" />
|
|
<PackageReference Include="Avalonia.Desktop" Version="11.3.12" />
|
|
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.3.12" />
|
|
<PackageReference Include="Avalonia.Fonts.Inter" Version="11.3.12" />
|
|
<!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
|
|
<PackageReference Include="Avalonia.Diagnostics" Version="11.3.12">
|
|
<IncludeAssets Condition="'$(Configuration)' != 'Debug'">None</IncludeAssets>
|
|
<PrivateAssets Condition="'$(Configuration)' != 'Debug'">All</PrivateAssets>
|
|
</PackageReference>
|
|
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.1" />
|
|
<PackageReference Include="DotNetCampus.AvaloniaInkCanvas" Version="1.0.1" />
|
|
<PackageReference Include="Downloader" Version="4.1.1" />
|
|
<PackageReference Include="FluentAvaloniaUI" Version="2.5.0" />
|
|
<PackageReference Include="FluentIcons.Avalonia" Version="2.0.320" />
|
|
<PackageReference Include="FluentIcons.Avalonia.Fluent" Version="2.0.320" />
|
|
<PackageReference Include="Material.Avalonia" Version="3.13.4" />
|
|
<PackageReference Include="Material.Icons.Avalonia" Version="2.4.1" />
|
|
<PackageReference Include="ClassIsland.Markdown.Avalonia" Version="11.0.3.4" />
|
|
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="10.0.0" />
|
|
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="10.0.0" />
|
|
<PackageReference Include="Microsoft.Data.Sqlite" Version="10.0.0" />
|
|
<PackageReference Include="MudTools.OfficeInterop" Version="2.0.8" />
|
|
<PackageReference Include="MudTools.OfficeInterop.Word" Version="2.0.8" />
|
|
<PackageReference Include="MudTools.OfficeInterop.Excel" Version="2.0.8" />
|
|
<PackageReference Include="MudTools.OfficeInterop.PowerPoint" Version="2.0.8" />
|
|
|
|
<PackageReference Include="PortAudioSharp2" Version="1.0.6" />
|
|
<PackageReference Include="MaterialColorUtilities" Version="0.3.0" />
|
|
<PackageReference Include="PostHog" Version="2.4.0" />
|
|
<PackageReference Include="Sentry" Version="4.0.0" />
|
|
<PackageReference Include="System.Runtime.WindowsRuntime" Version="4.7.0" />
|
|
<PackageReference Include="System.Drawing.Common" Version="10.0.0" />
|
|
|
|
<PackageReference Include="WebView.Avalonia" Version="11.0.0.1" />
|
|
<PackageReference Include="WebView.Avalonia.Desktop" Version="11.0.0.1" />
|
|
<PackageReference Include="YamlDotNet" Version="16.3.0" />
|
|
<PackageReference Include="Tmds.DBus.Protocol" Version="0.92.0" />
|
|
<PackageReference Include="log4net" Version="3.3.0" />
|
|
</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 $(MSBuildProjectDirectory)\..\scripts\Generate-VersionFile.ps1 -OutputPath '$(VersionFilePath)' -Version '$(AppVersion)' -Codename '$(AppCodename)'" Condition="'$(OS)' == 'Windows_NT'" />
|
|
<Exec Command="pwsh -ExecutionPolicy Bypass -File $(MSBuildProjectDirectory)\..\scripts\Generate-VersionFile.ps1 -OutputPath '$(VersionFilePath)' -Version '$(AppVersion)' -Codename '$(AppCodename)'" 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 $(MSBuildProjectDirectory)\..\scripts\Generate-VersionFile.ps1 -OutputPath '$(VersionFilePath)' -Version '$(AppVersion)' -Codename '$(AppCodename)'" Condition="'$(OS)' == 'Windows_NT'" />
|
|
<Exec Command="pwsh -ExecutionPolicy Bypass -File $(MSBuildProjectDirectory)\..\scripts\Generate-VersionFile.ps1 -OutputPath '$(VersionFilePath)' -Version '$(AppVersion)' -Codename '$(AppCodename)'" Condition="'$(OS)' != 'Windows_NT'" />
|
|
</Target>
|
|
</Project>
|