Files
jellypod/Jellyfin.Plugin.Jellypod/Jellyfin.Plugin.Jellypod.csproj
T
dtourolleandClaude Opus 5 c67005bd8f
🏗️ Build Plugin / build (push) Successful in 2m9s
🚀 Release Plugin / build-and-release (push) Successful in 1m33s
Add Jellyfin 12.0 build target alongside 10.9
The plugin now multi-targets net8.0 (Jellyfin 10.9, ABI 10.9.0.0) and net10.0
(Jellyfin 12.0, ABI 12.0.0.0) from one source tree, and each release ships both
packages.

TaskTriggerInfo.Type became a TaskTriggerInfoType enum in 12.0, which is the
only source-level break; it is handled with a NET10_0_OR_GREATER switch. CA1873
is disabled in the ruleset alongside CA1848, which it supersedes.

build.yaml stays the 10.9 config and the 12.0 one is derived from it at build
time, so the two cannot drift apart. Both manifest entries are prepended per
release with the 12.0 one first: Jellyfin keeps entries whose targetAbi is <=
the server version and takes the first of the highest version, so a 12.0 server
picks the 12.0 build while a 10.9 server never sees it.

The builder image now carries the .NET 10 SDK with the .NET 8 SDK alongside it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-08 18:51:45 +02:00

52 lines
2.2 KiB
XML

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net8.0;net10.0</TargetFrameworks>
<RootNamespace>Jellyfin.Plugin.Jellypod</RootNamespace>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<Nullable>enable</Nullable>
<AnalysisMode>AllEnabledByDefault</AnalysisMode>
<CodeAnalysisRuleSet>../jellyfin.ruleset</CodeAnalysisRuleSet>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
</PropertyGroup>
<!-- Jellyfin 10.9 (net8.0) -->
<ItemGroup Condition="'$(TargetFramework)' == 'net8.0'">
<PackageReference Include="Jellyfin.Controller" Version="10.9.11">
<ExcludeAssets>runtime</ExcludeAssets>
</PackageReference>
<PackageReference Include="Jellyfin.Model" Version="10.9.11">
<ExcludeAssets>runtime</ExcludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.Extensions.Http" Version="8.0.1" />
<PackageReference Include="System.ServiceModel.Syndication" Version="8.0.0" />
</ItemGroup>
<!-- Jellyfin 12.0 (net10.0) -->
<ItemGroup Condition="'$(TargetFramework)' == 'net10.0'">
<PackageReference Include="Jellyfin.Controller" Version="12.0.0">
<ExcludeAssets>runtime</ExcludeAssets>
</PackageReference>
<PackageReference Include="Jellyfin.Model" Version="12.0.0">
<ExcludeAssets>runtime</ExcludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.Extensions.Http" Version="10.0.11" />
<PackageReference Include="System.ServiceModel.Syndication" Version="10.0.11" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="SerilogAnalyzer" Version="0.15.0" PrivateAssets="All" />
<PackageReference Include="StyleCop.Analyzers" Version="1.2.0-beta.556" PrivateAssets="All" />
<PackageReference Include="SmartAnalyzers.MultithreadingAnalyzer" Version="1.1.31" PrivateAssets="All" />
</ItemGroup>
<ItemGroup>
<None Remove="Configuration\configPage.html" />
<EmbeddedResource Include="Configuration\configPage.html" />
<None Remove="Images\channel-icon.jpg" />
<EmbeddedResource Include="Images\channel-icon.jpg" />
</ItemGroup>
</Project>