-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLMP.csproj
More file actions
143 lines (114 loc) · 6.5 KB
/
LMP.csproj
File metadata and controls
143 lines (114 loc) · 6.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
<Project Sdk="Microsoft.NET.Sdk">
<!-- ====================== ВЕРСИИ ПАКЕТОВ ====================== -->
<PropertyGroup>
<!-- Основная версия Avalonia (меняй здесь одну строку при обновлении) -->
<AvaloniaVersion>11.3.9</AvaloniaVersion>
<!-- Другие версии -->
<HotAvaloniaVersion>3.1.0</HotAvaloniaVersion>
<EfCoreVersion>10.0.2</EfCoreVersion>
<ReactiveUIVersion>19.5.41</ReactiveUIVersion>
<CommunityToolkitMvvmVersion>8.2.1</CommunityToolkitMvvmVersion>
</PropertyGroup>
<!-- ====================== ОСНОВНЫЕ НАСТРОЙКИ ====================== -->
<PropertyGroup>
<OutputType Condition="'$(Configuration)' == 'Release'">WinExe</OutputType>
<OutputType Condition="'$(Configuration)' == 'Debug'">Exe</OutputType>
<TargetFramework>net10.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<LangVersion>latest</LangVersion>
<RootNamespace>LMP</RootNamespace>
<AssemblyName>LMP</AssemblyName>
<ApplicationManifest>app.manifest</ApplicationManifest>
<ApplicationIcon>Assets/app.ico</ApplicationIcon>
<AvaloniaUseCompiledBindingsByDefault>true</AvaloniaUseCompiledBindingsByDefault>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<NoWarn>$(NoWarn);CS0436</NoWarn>
<!-- Версионирование через Git -->
<VersionPrefix>1.0</VersionPrefix>
<!-- NuGet Lock File (обязательно для cache: true в GitHub Actions) -->
<RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
</PropertyGroup>
<!-- ====================== ОПТИМИЗАЦИЯ ПАМЯТИ ====================== -->
<PropertyGroup>
<!-- Workstation GC — лучший выбор для десктопных UI приложений (меньше памяти) -->
<ServerGarbageCollection>false</ServerGarbageCollection>
<!-- Background (Concurrent) GC — UI не фризит -->
<ConcurrentGarbageCollection>true</ConcurrentGarbageCollection>
<!-- Отдавать память ОС сразу после сборки мусора -->
<RetainVMGarbageCollection>false</RetainVMGarbageCollection>
<!-- Компактификация Large Object Heap (борьба с фрагментацией от кэшей изображений/аудио) -->
<GCLargeObjectHeapCompactionMode>CompactOnce</GCLargeObjectHeapCompactionMode>
<!-- Tiered Compilation + PGO (Profile Guided Optimization) — быстрее старт + лучше
производительность -->
<TieredCompilation>true</TieredCompilation>
<TieredCompilationQuickJit>true</TieredCompilationQuickJit>
<TieredPGO>true</TieredPGO>
</PropertyGroup>
<!-- ====================== DEBUG НАСТРОЙКИ ====================== -->
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
<DebugType>embedded</DebugType>
<EmbedAllSources>true</EmbedAllSources>
<Optimize>false</Optimize>
<!-- Hot Reload -->
<EnableHotReload>true</EnableHotReload>
<HotReloadEnabled>true</HotReloadEnabled>
<!-- HotAvalonia -->
<HotAvalonia>true</HotAvalonia>
<HotAvaloniaMode>Balanced</HotAvaloniaMode> <!-- Minimal | Balanced | Aggressive -->
</PropertyGroup>
<!-- ====================== RELEASE НАСТРОЙКИ ====================== -->
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
<DebugType>none</DebugType>
<Optimize>true</Optimize>
<PublishTrimmed>false</PublishTrimmed> <!-- Можно включить partial при необходимости -->
</PropertyGroup>
<!-- ====================== PLATFORM DEFINES ====================== -->
<!-- Определяет WINDOWS для условной компиляции (TrayVolumeHook, platform-specific features) -->
<PropertyGroup Condition="$([MSBuild]::IsOSPlatform('Windows'))">
<DefineConstants>$(DefineConstants);WINDOWS</DefineConstants>
</PropertyGroup>
<!-- ====================== ФАЙЛЫ ====================== -->
<ItemGroup>
<Compile Remove="External\**" />
<EmbeddedResource Remove="External\**" />
<None Remove="External\**" />
<Folder Include="Models\" />
<AvaloniaResource Include="Assets\**" />
<Content Include="Assets/app.ico" />
</ItemGroup>
<!-- ====================== ПАКЕТЫ ====================== -->
<ItemGroup>
<!-- Avalonia -->
<PackageReference Include="Avalonia" Version="$(AvaloniaVersion)" />
<PackageReference Include="Avalonia.Desktop" Version="$(AvaloniaVersion)" />
<PackageReference Include="Avalonia.Themes.Fluent" Version="$(AvaloniaVersion)" />
<PackageReference Include="Avalonia.Fonts.Inter" Version="$(AvaloniaVersion)" />
<PackageReference Include="Avalonia.ReactiveUI" Version="$(AvaloniaVersion)" />
<PackageReference Include="Avalonia.Diagnostics" Version="$(AvaloniaVersion)"
Condition="'$(Configuration)' == 'Debug'" />
<!-- Hot Reload для XAML -->
<PackageReference Include="HotAvalonia" Version="$(HotAvaloniaVersion)"
Condition="'$(Configuration)' == 'Debug'" PrivateAssets="All" />
<!-- Дополнительные Avalonia пакеты -->
<PackageReference Include="Avalonia.Controls.ItemsRepeater" Version="11.1.5" />
<PackageReference Include="Avalonia.Xaml.Behaviors" Version="11.3.0.6" />
<!-- Entity Framework -->
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="$(EfCoreVersion)" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="$(EfCoreVersion)" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="$(EfCoreVersion)">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<!-- MVVM + Reactive -->
<PackageReference Include="CommunityToolkit.Mvvm" Version="$(CommunityToolkitMvvmVersion)" />
<PackageReference Include="ReactiveUI.Fody" Version="$(ReactiveUIVersion)" />
<!-- Остальные пакеты -->
<PackageReference Include="AsyncImageLoader.Avalonia" Version="3.5.0" />
<PackageReference Include="Concentus" Version="2.2.2" />
<PackageReference Include="Jint" Version="4.6.0" />
<PackageReference Include="Material.Icons.Avalonia" Version="2.4.1" />
<PackageReference Include="NAudio" Version="2.2.1" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="10.0.2" />
</ItemGroup>
</Project>