-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathWinVora.csproj
More file actions
148 lines (127 loc) · 7.18 KB
/
Copy pathWinVora.csproj
File metadata and controls
148 lines (127 loc) · 7.18 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
144
145
146
147
148
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<!-- WinUI 3 -->
<TargetFramework>net8.0-windows10.0.19041.0</TargetFramework>
<TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion>
<RootNamespace>WinVora</RootNamespace>
<AssemblyName>WinVora</AssemblyName>
<Version>0.8.5-beta.4</Version>
<InformationalVersion>$(Version)</InformationalVersion>
<IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>
<ApplicationIcon>Assets\app.ico</ApplicationIcon>
<ApplicationManifest>app.manifest</ApplicationManifest>
<UseWinUI>true</UseWinUI>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
<AnalysisLevel>latest-minimum</AnalysisLevel>
<!-- Bestehende API-Form und reine Mikrooptimierungen werden bewusst nicht
als Buildwarnung geführt. Korrektheits-, Interop- und Async-Analyzer
bleiben aktiv und müssen warnungsfrei sein. -->
<NoWarn>$(NoWarn);CA1068;CA1507;CA1822;CA1859;CA1861;CA1865;CA1870</NoWarn>
<!-- Architektur fix -->
<PlatformTarget>x64</PlatformTarget>
<!-- Self-Contained: für dotnet publish, damit die App auch auf PCs
ohne installiertes .NET/Windows App SDK läuft (z.B. zum Testen
bei Freunden). Für den normalen Debug-Build in Visual Studio
ändert sich dadurch nichts. -->
<SelfContained>true</SelfContained>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<WindowsAppSDKSelfContained>true</WindowsAppSDKSelfContained>
<!-- PublishSingleFile war früher aktiv ("nur eine .exe zum Weitergeben"),
verursacht aber in Kombination mit WindowsAppSDKSelfContained bei
dieser SDK-Version einen Bug: aus 186 MB (489 Dateien) wurden beim
Bündeln plötzlich 1,87 GB - offenbar werden Dateien beim Bündeln
dupliziert statt nur zusammengepackt. Deshalb wieder deaktiviert.
Brauchen wir ohnehin nicht mehr: der Installer (Packaging\WinVoraSetup.iss)
packt den kompletten publish-Ordner sowieso in eine einzige
Setup.exe, egal ob darin 1 oder 489 Dateien stecken. -->
<!-- Release-Symbole werden intern archiviert und anschließend aus dem
Endnutzer-Publish entfernt. Dadurch bleiben Abstürze diagnostizierbar,
ohne die PDB mit dem Installer auszuliefern. -->
<DebugType Condition="'$(Configuration)' == 'Release'">portable</DebugType>
<DebugSymbols Condition="'$(Configuration)' == 'Release'">true</DebugSymbols>
<!-- Reduziert die vielen af-ZA/am-ET/... Sprachordner im Publish-Output
auf die tatsächlich benötigten Sprachen. -->
<SatelliteResourceLanguages>de;en</SatelliteResourceLanguages>
<!-- MSIX-Paketierung bleibt deaktiviert (WindowsPackageType/AppxPackage),
aber das MSIX-Tooling selbst muss an sein, damit PublishSingleFile
die resources.pri in die .exe einbetten kann. -->
<WindowsPackageType>None</WindowsPackageType>
<EnableMsixTooling>true</EnableMsixTooling>
<AppxPackage>false</AppxPackage>
<!-- XAML / Build Stabilität -->
<EnableDefaultCompileItems>true</EnableDefaultCompileItems>
<EnableDefaultPageItems>true</EnableDefaultPageItems>
<Platforms>x64</Platforms>
</PropertyGroup>
<ItemGroup>
<Compile Remove="Tests\Release\**\*.cs" />
<Compile Remove="Tests\obj\**\*.cs" />
<Compile Remove="Tests\bin\**\*.cs" />
<None Include="Tests\Release\**\*.cs" />
<None Include="Tests\WinVora.Tests.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="CommunityToolkit.WinUI.Controls.SettingsControls" Version="8.2.251219" />
<PackageReference Include="Microsoft.WindowsAppSDK" Version="2.4.0" />
<PackageReference Include="System.Management" Version="10.0.11" />
<PackageReference Include="System.Diagnostics.PerformanceCounter" Version="8.0.0" />
<PackageReference Include="System.Drawing.Common" Version="8.0.0" />
<PackageReference Include="LibreHardwareMonitorLib" Version="0.9.6" />
</ItemGroup>
<ItemGroup>
<Content Include="Assets\app.ico">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<TargetPath>app.ico</TargetPath>
</Content>
<Content Include="Assets\app-logo.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<TargetPath>app-logo.png</TargetPath>
</Content>
<Content Include="THIRD-PARTY-NOTICES.md">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<TargetPath>THIRD-PARTY-NOTICES.md</TargetPath>
</Content>
</ItemGroup>
<!-- Schließt ungenutzte KI/ML-Laufzeitkomponenten aus, die das
Windows App SDK 2.2.0 standardmäßig mitbringt (ONNX Runtime,
Windows-AI-Foundation-Projections für Copilot+-Funktionen). WinVora
ruft keine dieser APIs auf - ohne sie ist der Build deutlich kleiner.
Falls nach einem Update der App irgendwas Unerwartetes nicht mehr
funktioniert: dieses Target einfach komplett entfernen/auskommentieren. -->
<Target Name="RemoveUnusedAIRuntimeFiles" AfterTargets="ComputeResolvedFilesToPublishList">
<ItemGroup>
<ResolvedFileToPublish Remove="@(ResolvedFileToPublish)"
Condition="$([System.String]::Copy('%(ResolvedFileToPublish.FileName)').StartsWith('Microsoft.Windows.AI')) or
$([System.String]::Copy('%(ResolvedFileToPublish.FileName)').StartsWith('Microsoft.Windows.Internal.AI')) or
$([System.String]::Copy('%(ResolvedFileToPublish.FileName)').StartsWith('Microsoft.Windows.Vision')) or
$([System.String]::Copy('%(ResolvedFileToPublish.FileName)').StartsWith('Microsoft.Windows.SemanticSearch')) or
$([System.String]::Copy('%(ResolvedFileToPublish.FileName)').StartsWith('Microsoft.ML.OnnxRuntime')) or
'%(ResolvedFileToPublish.FileName)' == 'onnxruntime' or
'%(ResolvedFileToPublish.FileName)' == 'NPUDetect' or
'%(ResolvedFileToPublish.FileName)' == 'PerceptiveStreaming' or
'%(ResolvedFileToPublish.FileName)' == 'System.Numerics.Tensors'" />
</ItemGroup>
</Target>
<!-- Verhindert fehlende Übersetzungsschlüssel und neue fest eingebaute
deutsche UI-Texte bereits während des Builds. -->
<Target Name="ValidateLocalization" BeforeTargets="BeforeCompile">
<Exec Command="powershell.exe -NoProfile -ExecutionPolicy Bypass -File "$(MSBuildProjectDirectory)\scripts\Test-Localization.ps1" -ProjectRoot "$(MSBuildProjectDirectory)"" />
</Target>
<Target Name="ValidateUiQuality" BeforeTargets="BeforeCompile">
<Exec Command="powershell.exe -NoProfile -ExecutionPolicy Bypass -File "$(MSBuildProjectDirectory)\scripts\Test-UiQuality.ps1" -ProjectRoot "$(MSBuildProjectDirectory)"" />
</Target>
<Target Name="ArchiveReleaseSymbols" AfterTargets="Publish" Condition="'$(Configuration)' == 'Release'">
<PropertyGroup>
<SymbolArchiveDir>$(MSBuildProjectDirectory)\artifacts\symbols\$(Version)</SymbolArchiveDir>
</PropertyGroup>
<MakeDir Directories="$(SymbolArchiveDir)" />
<Copy SourceFiles="$(TargetDir)$(TargetName).pdb"
DestinationFiles="$(SymbolArchiveDir)\$(TargetName).pdb"
Condition="Exists('$(TargetDir)$(TargetName).pdb')" />
<Delete Files="$(PublishDir)$(TargetName).pdb"
Condition="Exists('$(PublishDir)$(TargetName).pdb')" />
</Target>
</Project>