2026-05-26 21:47:55 +02:00
<Project Sdk= "Microsoft.NET.Sdk" >
<PropertyGroup >
<TargetFramework > net10.0</TargetFramework>
<OutputType > Exe</OutputType>
<Nullable > enable</Nullable>
<ImplicitUsings > enable</ImplicitUsings>
<AssemblyName > CatalogLite</AssemblyName>
<RootNamespace > CatalogLite</RootNamespace>
<AvaloniaUseCompiledBindingsByDefault > false</AvaloniaUseCompiledBindingsByDefault>
<CatalogLiteExpirationDate Condition= "'$(CatalogLiteExpirationDate)' == ''" > 2026-12-31</CatalogLiteExpirationDate>
2026-05-28 19:49:57 +02:00
<UseAppHost > true</UseAppHost>
<SelfContained > false</SelfContained>
<PublishSingleFile > true</PublishSingleFile>
<IncludeNativeLibrariesForSelfExtract > true</IncludeNativeLibrariesForSelfExtract>
<PublishTrimmed > false</PublishTrimmed>
<PublishReadyToRun > false</PublishReadyToRun>
<DebugType > embedded</DebugType>
2026-05-26 21:47:55 +02:00
</PropertyGroup>
<PropertyGroup Condition= "'$(RuntimeIdentifier)' == 'win-x64' Or '$(RuntimeIdentifier)' == 'win-arm64'" >
<OutputType > WinExe</OutputType>
</PropertyGroup>
<ItemGroup >
2026-05-26 22:33:46 +02:00
<Compile Include= "$(IntermediateOutputPath)CatalogLiteExpiration.g.cs" Visible= "false" />
2026-05-26 21:47:55 +02:00
</ItemGroup>
<ItemGroup >
2026-05-28 20:27:05 +02:00
<ProjectReference Include= "..\MaddoShared\MaddoShared.csproj" />
2026-05-26 21:47:55 +02:00
</ItemGroup>
<ItemGroup >
<PackageReference Include= "Avalonia" Version= "11.3.13" />
<PackageReference Include= "Avalonia.Desktop" Version= "11.3.13" />
<PackageReference Include= "Avalonia.Themes.Fluent" Version= "11.3.13" />
2026-05-28 19:49:57 +02:00
<PackageReference Include= "IconPacks.Avalonia.Material" Version= "2.0.0" />
2026-05-26 21:47:55 +02:00
<PackageReference Include= "Microsoft.Extensions.DependencyInjection" Version= "10.0.8" />
<PackageReference Include= "Microsoft.Extensions.Logging" Version= "10.0.8" />
<PackageReference Include= "Microsoft.Extensions.Logging.Console" Version= "10.0.8" />
</ItemGroup>
<Target Name= "ValidateCatalogLiteExpirationDate" BeforeTargets= "BeforeCompile" >
<PropertyGroup >
<_CatalogLiteExpirationDateIsIso > $([System.Text.RegularExpressions.Regex]::IsMatch('$(CatalogLiteExpirationDate)', '^\d{4}-\d{2}-\d{2}$'))</_CatalogLiteExpirationDateIsIso>
</PropertyGroup>
<Error Condition= "'$(_CatalogLiteExpirationDateIsIso)' != 'True'" Text= "CatalogLiteExpirationDate must use yyyy-MM-dd format. Current value: $(CatalogLiteExpirationDate)" />
</Target>
2026-05-26 22:33:46 +02:00
<Target Name= "GenerateCatalogLiteExpirationSource" BeforeTargets= "CoreCompile" DependsOnTargets= "ValidateCatalogLiteExpirationDate" >
<WriteLinesToFile
File="$(IntermediateOutputPath)CatalogLiteExpiration.g.cs"
Overwrite="true"
Lines="using System.Reflection%3B
 
 [assembly: AssemblyMetadata(" CatalogLiteGeneratedExpirationDate" , " $(CatalogLiteExpirationDate)" )]
 [assembly: AssemblyMetadata(" CatalogLiteExpirationDate" , " $(CatalogLiteExpirationDate)" )]
 
 namespace CatalogLite%3B
 
 internal static class BuildExpiration
 {
 public const string ExpirationDate = " $(CatalogLiteExpirationDate)" %3B
 }" />
</Target>
2026-05-28 19:49:57 +02:00
<Target Name= "ValidateCatalogLiteFeatureDependencies" AfterTargets= "ResolveReferences" >
<ItemGroup >
<_CatalogLiteForbiddenReference Include= "@(ReferencePath)" Condition= "$([System.String]::Copy('%(FileName)').StartsWith('AIFotoONLUS')) Or '%(FileName)' == 'Catalog.Communication' Or '%(FileName)' == 'Microsoft.Windows.Compatibility' Or '%(FileName)' == 'System.Drawing.Common' Or '%(FileName)' == 'System.Private.Windows.GdiPlus' Or '%(FileName)' == 'System.Windows.Extensions'" />
</ItemGroup>
<Error Condition= "'@(_CatalogLiteForbiddenReference)' != ''" Text= "Catalog Lite must not reference AI or race upload assemblies: @(_CatalogLiteForbiddenReference->'%(FileName)%(Extension)', ', ')" />
</Target>
<Target Name= "PruneCatalogLitePublishSidecars" AfterTargets= "Publish" Condition= "'$(PublishDir)' != '' And '$(PublishSingleFile)' == 'true'" >
<ItemGroup >
<_CatalogLiteSidecarFile Include= "$(PublishDir)**\*.dll.config;$(PublishDir)**\*.pdb" />
</ItemGroup>
<Delete Files= "@(_CatalogLiteSidecarFile)" />
</Target>
<Target Name= "ValidateCatalogLitePublishOutput" AfterTargets= "PruneCatalogLitePublishSidecars" Condition= "'$(PublishDir)' != '' And '$(PublishSingleFile)' == 'true'" >
<ItemGroup >
<_CatalogLiteLooseNativeFile Include= "$(PublishDir)**\*.dll;$(PublishDir)**\*.so;$(PublishDir)**\*.dylib" />
</ItemGroup>
<Error Condition= "'@(_CatalogLiteLooseNativeFile)' != ''" Text= "Catalog Lite single-file publish produced loose native/managed library files: @(_CatalogLiteLooseNativeFile->'%(Filename)%(Extension)', ', ')" />
</Target>
2026-05-26 21:47:55 +02:00
</Project>