Repository navigation
Expand file tree
/
Copy pathSystemTools.csproj
More file actions
205 lines (192 loc) · 10.9 KB
/
Copy pathSystemTools.csproj
File metadata and controls
205 lines (192 loc) · 10.9 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
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net10.0-windows10.0.19041.0</TargetFramework>
<Nullable>enable</Nullable>
<LangVersion>latest</LangVersion>
<UseWindowsForms>true</UseWindowsForms>
<Platforms>x64</Platforms>
<CreateCipx>true</CreateCipx>
</PropertyGroup>
<ItemGroup>
<None Include=".github\workflows\dotnet-build.yml" />
<Compile Remove="ClassIsland\**" />
<EmbeddedResource Remove="ClassIsland\**" />
<None Remove="ClassIsland\**" />
<AdditionalFiles Remove="ClassIsland\**" />
<AvaloniaXaml Remove="ClassIsland\**" />
<AvaloniaResource Remove="ClassIsland\**" />
<None Remove="VoskWorker\**" />
<None Remove="cipx\**" />
<None Remove="ThirdParty\LiquidGlassAvaloniaUI\Assets\Shaders\*.sksl" />
<AvaloniaResource Include="Themes\CardTypeComponent\Theme.axaml.txt" />
<AvaloniaResource Include="Themes\ClassWidgets\Theme.axaml.txt" />
<AvaloniaResource Include="Themes\NotchStyle\Theme.axaml.txt" />
<AvaloniaResource Include="Themes\ClassWidgets\上课.png" />
<AvaloniaResource Include="Themes\ClassWidgets\课间休息.png" />
<AvaloniaResource Include="Themes\ClassWidgets\无课程.png" />
<AvaloniaResource Include="ThirdParty\LiquidGlassAvaloniaUI\Assets\Shaders\*.sksl" />
<None Remove="Themes\VerticalSidebar\Theme.axaml.txt" />
</ItemGroup>
<ItemGroup>
<!-- SuperAutoIsland 接口仅用于可选 Blockly 接入;SAI 未安装时仍可独立运行。 -->
<!-- 使用 NuGet 固定版本,避免构建依赖开发机上的 SAI 源码目录。 -->
<PackageReference Include="SuperAutoIsland.Interface" Version="0.3.9.2-dev.3" GeneratePathProperty="true" />
<PackageReference Include="ClassIsland.PluginSdk" Version="2.1.1.1" />
<PackageReference Include="DlibDotNet" Version="19.21.0.20220724" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="10.0.10" />
<PackageReference Include="NPOI" Version="2.7.2" GeneratePathProperty="true" />
<PackageReference Include="SharpZipLib" Version="1.4.2" GeneratePathProperty="true" />
<PackageReference Include="Microsoft.IO.RecyclableMemoryStream" Version="3.0.1" GeneratePathProperty="true" />
<PackageReference Include="Microsoft.Windows.CsWin32" Version="0.3.298">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="OpenCvSharp4" Version="4.9.0.20240103" />
<PackageReference Include="OpenCvSharp4.Extensions" Version="4.5.3.20211225" />
<PackageReference Include="OpenCvSharp4.runtime.win" Version="4.9.0.20240103" />
<PackageReference Include="System.Management" Version="8.0.0" />
<PackageReference Include="System.Speech" Version="8.0.0" />
</ItemGroup>
<ItemGroup>
<Compile Remove="VoskWorker\**\*.cs" />
<Compile Remove="VoskWorker\**" />
<Compile Remove="cipx\**" />
</ItemGroup>
<Target Name="CopyVoskWorkerToPluginOutput" AfterTargets="Build">
<ItemGroup>
<VoskWorkerFiles Include="$(MSBuildProjectDirectory)\VoskWorker\bin\$(Configuration)\net10.0\win-x64\**\*" />
</ItemGroup>
<RemoveDir Directories="$(OutDir)VoskWorker" />
<Copy SourceFiles="@(VoskWorkerFiles)" DestinationFiles="@(VoskWorkerFiles->'$(OutDir)VoskWorker\%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="true" />
<ItemGroup>
<FileWrites Include="@(VoskWorkerFiles->'$(OutDir)VoskWorker\%(RecursiveDir)%(Filename)%(Extension)')" />
</ItemGroup>
</Target>
<!--
SuperAutoIsland.Interface 是可选插件的接口程序集。它不能依赖 SAI 是否已安装,
因此随 SystemTools 主程序集复制到插件输出根目录;SAI 安装时仍由同一程序集提供接口类型。
-->
<Target Name="CopySuperAutoIslandInterfaceToPluginOutput" AfterTargets="Build" BeforeTargets="CreateCipx">
<PropertyGroup>
<SuperAutoIslandInterfacePath Condition="Exists('$(SuperAutoIslandDebugOutputDirectory)\SuperAutoIsland.Interface.dll')">$(SuperAutoIslandDebugOutputDirectory)\SuperAutoIsland.Interface.dll</SuperAutoIslandInterfacePath>
<SuperAutoIslandInterfacePath Condition="'$(SuperAutoIslandInterfacePath)' == ''">$(PkgSuperAutoIsland_Interface)\lib\net10.0\SuperAutoIsland.Interface.dll</SuperAutoIslandInterfacePath>
</PropertyGroup>
<Error Condition="!Exists('$(SuperAutoIslandInterfacePath)')"
Text="未能找到 SuperAutoIsland.Interface 包程序集:$(SuperAutoIslandInterfacePath)" />
<Copy SourceFiles="$(SuperAutoIslandInterfacePath)"
DestinationFolder="$(OutDir)"
SkipUnchangedFiles="true" />
<ItemGroup>
<FileWrites Include="$(OutDir)SuperAutoIsland.Interface.dll" />
</ItemGroup>
</Target>
<!--
本地 ClassIsland 调试使用 -epp 加载 SystemTools,而 SAI 放在宿主的 Plugins 目录中。
每次 Debug 构建 SystemTools 时刷新 SAI 目录,这样启动调试配置即可同时加载两个插件。
这只复制 SAI 的现有构建产物,不修改 SAI 源码或其项目文件。
-->
<PropertyGroup>
<ClassIslandDebugHostDirectory Condition="'$(ClassIslandDebugHostDirectory)' == ''">E:\ClassIsland-git-misha\ClassIsland.Desktop\bin\Debug\net10.0-windows10.0.19041.0</ClassIslandDebugHostDirectory>
<SuperAutoIslandDebugOutputDirectory Condition="'$(SuperAutoIslandDebugOutputDirectory)' == ''">E:\My Github Projects\临时\SuperAutoIsland-master\SuperAutoIsland-master\SuperAutoIsland\bin\Debug\net10.0</SuperAutoIslandDebugOutputDirectory>
<SuperAutoIslandDebugPluginId>lrs2187.sai</SuperAutoIslandDebugPluginId>
</PropertyGroup>
<Target Name="PrepareClassIslandDebugSuperAutoIsland"
AfterTargets="Build"
BeforeTargets="CreateCipx"
Condition="'$(Configuration)' == 'Debug' and Exists('$(ClassIslandDebugHostDirectory)')">
<PropertyGroup>
<ClassIslandDebugSaiPluginDirectory>$(ClassIslandDebugHostDirectory)\Plugins\$(SuperAutoIslandDebugPluginId)</ClassIslandDebugSaiPluginDirectory>
</PropertyGroup>
<Error Condition="!Exists('$(SuperAutoIslandDebugOutputDirectory)\manifest.yml') or !Exists('$(SuperAutoIslandDebugOutputDirectory)\SuperAutoIsland.dll')"
Text="未找到 SAI Debug 构建产物。请先构建 SuperAutoIsland\SuperAutoIsland.csproj,或通过 /p:SuperAutoIslandDebugOutputDirectory=... 指定输出目录。" />
<RemoveDir Directories="$(ClassIslandDebugSaiPluginDirectory)" />
<MakeDir Directories="$(ClassIslandDebugSaiPluginDirectory)" />
<ItemGroup>
<SuperAutoIslandDebugFiles Include="$(SuperAutoIslandDebugOutputDirectory)\**\*" />
</ItemGroup>
<Copy SourceFiles="@(SuperAutoIslandDebugFiles)"
DestinationFiles="@(SuperAutoIslandDebugFiles->'$(ClassIslandDebugSaiPluginDirectory)\%(RecursiveDir)%(Filename)%(Extension)')"
SkipUnchangedFiles="true" />
<Message Importance="high"
Text="已将 SAI Debug 插件同步到 $(ClassIslandDebugSaiPluginDirectory)" />
</Target>
<!--
导出 Excel 功能需要 NPOI 及其运行时依赖。本项目为类库,NuGet 的运行时资产默认不会复制到输出目录,
因此这里显式复制到插件目录,使其随 CIPX 一同分发,并可由插件的 AssemblyDependencyResolver 解析。
-->
<Target Name="CopyExcelExporterDependencies" AfterTargets="Build" BeforeTargets="CreateCipx">
<ItemGroup>
<ExcelExporterDependency Include="$(PkgNPOI)\lib\net6.0\NPOI.Core.dll" />
<ExcelExporterDependency Include="$(PkgNPOI)\lib\net6.0\NPOI.OOXML.dll" />
<ExcelExporterDependency Include="$(PkgNPOI)\lib\net6.0\NPOI.OpenXml4Net.dll" />
<ExcelExporterDependency Include="$(PkgNPOI)\lib\net6.0\NPOI.OpenXmlFormats.dll" />
<ExcelExporterDependency Include="$(PkgSharpZipLib)\lib\net6.0\ICSharpCode.SharpZipLib.dll" />
<ExcelExporterDependency Include="$(PkgMicrosoft_IO_RecyclableMemoryStream)\lib\net6.0\Microsoft.IO.RecyclableMemoryStream.dll" />
</ItemGroup>
<Error Condition="'@(ExcelExporterDependency)' == ''"
Text="未能解析 Excel 导出功能所需的依赖包路径(NPOI / SharpZipLib / Microsoft.IO.RecyclableMemoryStream)。" />
<Copy SourceFiles="@(ExcelExporterDependency)"
DestinationFolder="$(OutDir)"
SkipUnchangedFiles="true" />
<ItemGroup>
<FileWrites Include="@(ExcelExporterDependency->'$(OutDir)%(Filename)%(Extension)')" />
</ItemGroup>
</Target>
<ItemGroup>
<None Update="manifest.yml">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="version.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="README-1.md">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="README.md">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="README-2.md">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="icon.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="title.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="black.html">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="jinyongshubiao.bat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="jinyongshubiao.ps1">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="huifu.bat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="huifu.ps1">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Lyricify Lite - README.md">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<AvaloniaXaml Remove="VoskWorker\**" />
<AvaloniaXaml Remove="cipx\**" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Remove="VoskWorker\**" />
<EmbeddedResource Remove="cipx\**" />
</ItemGroup>
<ItemGroup>
<AdditionalFiles Remove="VoskWorker\**" />
<AdditionalFiles Remove="cipx\**" />
</ItemGroup>
<ItemGroup>
<AvaloniaResource Remove="VoskWorker\**" />
<AvaloniaResource Remove="cipx\**" />
</ItemGroup>
</Project>