Repository navigation
Expand file tree
/
Copy pathPdfEditorApp.csproj
More file actions
90 lines (85 loc) · 4.59 KB
/
Copy pathPdfEditorApp.csproj
File metadata and controls
90 lines (85 loc) · 4.59 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
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net10.0</TargetFramework>
<Nullable>enable</Nullable>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<NoWarn>$(NoWarn);NU1901;NU1902;NU1903;NU1904</NoWarn>
<ApplicationIcon>Assets/app-logo.ico</ApplicationIcon>
<ApplicationManifest>app.manifest</ApplicationManifest>
<Version Condition="'$(Version)' == ''">0.2.0</Version>
<AssemblyTitle>FryPDF</AssemblyTitle>
<Product>FryPDF</Product>
<Company>Code Fry Dev</Company>
<Copyright>Copyright © 2026 Code Fry Dev</Copyright>
<Description>Privacy-first, professional desktop PDF creator and editor studio</Description>
<!--
The shipped launcher is FryPDF, but the managed assembly stays PdfEditorApp:
PluginAssemblyLoader treats "PdfEditorApp" / "PdfEditorApp.Core" as the host
contract, the plugin guide publishes PdfEditorApp.dll as a HintPath, and five
avares://PdfEditorApp/ URIs resolve against the assembly name. Renaming the
assembly would break every third-party plugin; renaming the apphost does not.
-->
<PublishedAppHostName>FryPDF</PublishedAppHostName>
</PropertyGroup>
<!--
Renamed after Publish rather than after Build: RunCommand is hardcoded to
$(TargetDir)$(AssemblyName)$(_NativeExecutableExtension), so renaming the build
output would break `dotnet run` and IDE F5. The apphost stores the name of its
managed dll internally and hostfxr derives runtimeconfig/deps from that, never
from the executable's own filename, so the rename is transparent at runtime.
-->
<Target Name="RenamePublishedAppHost" AfterTargets="Publish"
Condition="'$(PublishedAppHostName)' != '' and '$(AssemblyName)' != '$(PublishedAppHostName)' and '$(UseAppHost)' != 'false'">
<PropertyGroup>
<_OldAppHost>$(PublishDir)$(AssemblyName)$(_NativeExecutableExtension)</_OldAppHost>
<_NewAppHost>$(PublishDir)$(PublishedAppHostName)$(_NativeExecutableExtension)</_NewAppHost>
</PropertyGroup>
<Delete Files="$(_NewAppHost)" Condition="Exists('$(_NewAppHost)')" />
<Move SourceFiles="$(_OldAppHost)" DestinationFiles="$(_NewAppHost)" Condition="Exists('$(_OldAppHost)')" />
<Message Importance="high" Text="Published apphost renamed to $(PublishedAppHostName)$(_NativeExecutableExtension)" Condition="Exists('$(_NewAppHost)')" />
</Target>
<ItemGroup>
<Folder Include="Models\" />
<AvaloniaResource Include="Assets\**" />
<!--
A command-line -p:AssemblyVersion (as passed by .github/workflows/release.yml) is a global
property and would otherwise beat PdfEditorApp.Core's own PropertyGroup, rewriting the plugin
ABI identity on every release. Stripping it here lets Core keep the stable AssemblyVersion it
declares for itself, while Version / FileVersion / InformationalVersion still flow through so
the shipped file keeps reporting the release it came from.
-->
<ProjectReference Include="..\PdfEditorApp.Core\PdfEditorApp.Core.csproj"
GlobalPropertiesToRemove="AssemblyVersion" />
</ItemGroup>
<ItemGroup>
<InternalsVisibleTo Include="PdfEditorApp.Tests" />
</ItemGroup>
<ItemGroup>
<None Include="..\..\profiles\**" Link="profiles\%(RecursiveDir)%(FileName)%(Extension)" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Avalonia" />
<PackageReference Include="Avalonia.Controls.ColorPicker" />
<PackageReference Include="Avalonia.Desktop" />
<PackageReference Include="Avalonia.Themes.Fluent" />
<PackageReference Include="Avalonia.Fonts.Inter" />
<PackageReference Include="AvaloniaUI.DiagnosticsSupport">
<IncludeAssets Condition="'$(Configuration)' != 'Debug'">None</IncludeAssets>
<PrivateAssets Condition="'$(Configuration)' != 'Debug'">All</PrivateAssets>
</PackageReference>
<PackageReference Include="CommunityToolkit.Mvvm" />
<PackageReference Include="Material.Icons.Avalonia" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" />
<PackageReference Include="QRCoder" />
<PackageReference Include="QuestPDF" />
<PackageReference Include="PdfSharpCore" />
<PackageReference Include="PdfPig" />
<PackageReference Include="PdfPig.Rendering.Skia" />
<PackageReference Include="Tabula" />
<PackageReference Include="DocumentFormat.OpenXml" />
<PackageReference Include="Microsoft.Extensions.AI" />
<PackageReference Include="Microsoft.Extensions.AI.OpenAI" />
<PackageReference Include="OllamaSharp" />
</ItemGroup>
</Project>