Move all 154 PackageReference versions (96 distinct packages) out of the 14 project files into a single central Directory.Packages.props with ManagePackageVersionsCentrally=true. No version changes — every package was already pinned identically across projects (no conflicts detected), so this is a pure relocation: updates become one-line and cross-project version drift is structurally impossible. Also copy Directory.Packages.props into the Docker image build before restore: with CPM the csproj carry no versions, so the image's `dotnet restore` fails without the central manifest (verified: NU1015 across every project). Restore + Release build verified locally, plus a simulation of the image's restore layer under linux-x64 (0 errors; only the pre-existing NCalcSync/SQLitePCLRaw advisories remain, demoted to warnings, tracked in #8). Part of #14. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
167 lines
9.2 KiB
XML
167 lines
9.2 KiB
XML
<Project Sdk="Microsoft.NET.Sdk.Web">
|
|
|
|
<PropertyGroup>
|
|
<TargetFramework>net10.0</TargetFramework>
|
|
<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
|
|
<TypeScriptToolsVersion>Latest</TypeScriptToolsVersion>
|
|
<IsPackable>false</IsPackable>
|
|
<ImplicitUsings>enable</ImplicitUsings>
|
|
<NoWarn>VSTHRD200,CA1873</NoWarn>
|
|
<IncludeAllContentForSelfExtract>true</IncludeAllContentForSelfExtract>
|
|
<Configurations>Debug;Release;Debug No Sync</Configurations>
|
|
<Platforms>AnyCPU</Platforms>
|
|
<UserSecretsId>bf31217d-f4ec-4520-8cc3-138059044ede</UserSecretsId>
|
|
<AnalysisLevel>latest-Recommended</AnalysisLevel>
|
|
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
|
|
<RequiresAspNetWebAssets>true</RequiresAspNetWebAssets>
|
|
<NeutralLanguage>en-US</NeutralLanguage>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<OpenApiDocumentsDirectory>$(MSBuildProjectDirectory)\wwwroot\openapi</OpenApiDocumentsDirectory>
|
|
<OpenApiGenerateDocumentsOnBuild>false</OpenApiGenerateDocumentsOnBuild>
|
|
</PropertyGroup>
|
|
|
|
<Target Name="RenameOpenApiFiles" AfterTargets="GenerateOpenApiDocuments">
|
|
<Move SourceFiles="$(OpenApiDocumentsDirectory)\ErsatzTV.json" DestinationFiles="$(OpenApiDocumentsDirectory)\v1.json" />
|
|
<Move SourceFiles="$(OpenApiDocumentsDirectory)\ErsatzTV_scripted-schedule.json" DestinationFiles="$(OpenApiDocumentsDirectory)\scripted-schedule.json" />
|
|
<Move SourceFiles="$(OpenApiDocumentsDirectory)\ErsatzTV_scripted-schedule-tagged.json" DestinationFiles="$(OpenApiDocumentsDirectory)\scripted-schedule-tagged.json" />
|
|
</Target>
|
|
|
|
<ItemGroup>
|
|
<!-- <PackageReference Include="EntityFrameworkProfiler.Appender" /> -->
|
|
<PackageReference Include="Blazored.FluentValidation" />
|
|
<PackageReference Include="BlazorSortable" />
|
|
<PackageReference Include="Chronic.Core" />
|
|
<PackageReference Include="FluentValidation" />
|
|
<PackageReference Include="FluentValidation.AspNetCore" />
|
|
<PackageReference Include="Heron.MudCalendar" />
|
|
<PackageReference Include="HtmlSanitizer" />
|
|
<PackageReference Include="LanguageExt.Core" />
|
|
<PackageReference Include="Markdig" />
|
|
<PackageReference Include="MediatR.Courier.DependencyInjection" />
|
|
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" />
|
|
<PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" />
|
|
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" />
|
|
<PackageReference Include="Microsoft.AspNetCore.OpenApi" />
|
|
<PackageReference Include="Microsoft.AspNetCore.SpaServices.Extensions" />
|
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Design">
|
|
<PrivateAssets>all</PrivateAssets>
|
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
|
</PackageReference>
|
|
<PackageReference Include="Microsoft.Extensions.ApiDescription.Server">
|
|
<PrivateAssets>all</PrivateAssets>
|
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
|
</PackageReference>
|
|
<PackageReference Include="MudBlazor" />
|
|
<PackageReference Include="NaturalSort.Extension" />
|
|
<PackageReference Include="Refit.HttpClientFactory" />
|
|
<PackageReference Include="Scalar.AspNetCore" />
|
|
<PackageReference Include="Serilog" />
|
|
<PackageReference Include="Serilog.AspNetCore" />
|
|
<PackageReference Include="Serilog.Settings.Configuration" />
|
|
<PackageReference Include="VueCliMiddleware" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<ProjectReference Include="..\ErsatzTV.Application\ErsatzTV.Application.csproj" />
|
|
<ProjectReference Include="..\ErsatzTV.Core\ErsatzTV.Core.csproj" />
|
|
<ProjectReference Include="..\ErsatzTV.Infrastructure.MySql\ErsatzTV.Infrastructure.MySql.csproj" />
|
|
<ProjectReference Include="..\ErsatzTV.Infrastructure.Sqlite\ErsatzTV.Infrastructure.Sqlite.csproj" />
|
|
<ProjectReference Include="..\ErsatzTV.Infrastructure\ErsatzTV.Infrastructure.csproj" />
|
|
<ProjectReference Include="..\ErsatzTV.Core.Nullable\ErsatzTV.Core.Nullable.csproj" />
|
|
<ProjectReference Include="..\ErsatzTV.Scanner\ErsatzTV.Scanner.csproj" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<EmbeddedResource Include="Resources\Fonts\Sen.ttf" />
|
|
<EmbeddedResource Include="Resources\_background.png" />
|
|
<EmbeddedResource Include="Resources\Fonts\OPTIKabel-Heavy.otf" />
|
|
<EmbeddedResource Include="Resources\Fonts\Roboto-Regular.ttf" />
|
|
<EmbeddedResource Include="Resources\Scripts\_threePartEpisodes.js" />
|
|
<EmbeddedResource Include="Resources\Scripts\_episode.js" />
|
|
<EmbeddedResource Include="Resources\Scripts\_movie.js" />
|
|
<EmbeddedResource Include="Resources\Scripts\MpegTs\run.sh" />
|
|
<EmbeddedResource Include="Resources\Scripts\MpegTs\run.bat" />
|
|
<EmbeddedResource Include="Resources\Scripts\MpegTs\mpegts.yml" />
|
|
<EmbeddedResource Include="Resources\_song_album_cover_512.png" />
|
|
<EmbeddedResource Include="Resources\_song_background_1.png" />
|
|
<EmbeddedResource Include="Resources\_song_background_2.png" />
|
|
<EmbeddedResource Include="Resources\_song_background_3.png" />
|
|
<EmbeddedResource Include="Resources\song_progress_overlay.png" />
|
|
<EmbeddedResource Include="Resources\song_progress_overlay_43.png" />
|
|
<EmbeddedResource Include="Resources\ErsatzTV.png" />
|
|
<EmbeddedResource Include="Resources\ISO-639-2_utf-8.txt" />
|
|
<EmbeddedResource Include="Resources\Templates\_default.ass.sbntxt" />
|
|
<EmbeddedResource Include="Resources\Templates\_ArtistTitle_LeftMiddle.sbntxt" />
|
|
<EmbeddedResource Include="Resources\Templates\_ArtistTitleAlbum_CenterTop.sbntxt" />
|
|
<EmbeddedResource Include="Resources\Templates\_channel.sbntxt" />
|
|
<EmbeddedResource Include="Resources\Templates\_episode.sbntxt" />
|
|
<EmbeddedResource Include="Resources\Templates\_movie.sbntxt" />
|
|
<EmbeddedResource Include="Resources\Templates\_musicVideo.sbntxt" />
|
|
<EmbeddedResource Include="Resources\Templates\_otherVideo.sbntxt" />
|
|
<EmbeddedResource Include="Resources\Templates\_song.sbntxt" />
|
|
<EmbeddedResource Include="Resources\sequential-schedule-import.schema.json" />
|
|
<EmbeddedResource Include="Resources\sequential-schedule.schema.json" />
|
|
<EmbeddedResource Include="Resources\empty.sqlite3" />
|
|
<EmbeddedResource Include="Resources\test.avs" />
|
|
<EmbeddedResource Include="Resources\Templates\_remoteStream.sbntxt" />
|
|
<EmbeddedResource Update="Locals\Shared\MainLayout.resx">
|
|
<Generator>ResXFileCodeGenerator</Generator>
|
|
<LastGenOutput>MainLayout.Designer.cs</LastGenOutput>
|
|
</EmbeddedResource>
|
|
<EmbeddedResource Update="Locals\Pages\Channels.resx">
|
|
<Generator>ResXFileCodeGenerator</Generator>
|
|
<LastGenOutput>Channels.Designer.cs</LastGenOutput>
|
|
</EmbeddedResource>
|
|
<EmbeddedResource Update="Locals\Shared\Common.resx">
|
|
<Generator>ResXFileCodeGenerator</Generator>
|
|
<LastGenOutput>Common.Designer.cs</LastGenOutput>
|
|
</EmbeddedResource>
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<Content Include="..\artwork\Ersatztv.icns">
|
|
<Link>Ersatztv.icns</Link>
|
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
|
</Content>
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<_ContentIncludedByDefault Remove="wwwroot\css\open-iconic\FONT-LICENSE" />
|
|
<_ContentIncludedByDefault Remove="wwwroot\css\open-iconic\font\css\open-iconic-bootstrap.min.css" />
|
|
<_ContentIncludedByDefault Remove="wwwroot\css\open-iconic\font\fonts\open-iconic.eot" />
|
|
<_ContentIncludedByDefault Remove="wwwroot\css\open-iconic\font\fonts\open-iconic.otf" />
|
|
<_ContentIncludedByDefault Remove="wwwroot\css\open-iconic\font\fonts\open-iconic.svg" />
|
|
<_ContentIncludedByDefault Remove="wwwroot\css\open-iconic\font\fonts\open-iconic.ttf" />
|
|
<_ContentIncludedByDefault Remove="wwwroot\css\open-iconic\font\fonts\open-iconic.woff" />
|
|
<_ContentIncludedByDefault Remove="wwwroot\css\open-iconic\ICON-LICENSE" />
|
|
<_ContentIncludedByDefault Remove="wwwroot\css\open-iconic\README.md" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<Compile Update="Locals\Shared\MainLayout.Designer.cs">
|
|
<DesignTime>True</DesignTime>
|
|
<AutoGen>True</AutoGen>
|
|
<DependentUpon>MainLayout.resx</DependentUpon>
|
|
</Compile>
|
|
<Compile Update="Locals\Pages\Channels.Designer.cs">
|
|
<DesignTime>True</DesignTime>
|
|
<AutoGen>True</AutoGen>
|
|
<DependentUpon>Channels.resx</DependentUpon>
|
|
</Compile>
|
|
<Compile Update="Locals\Shared\Common.Designer.cs">
|
|
<DesignTime>True</DesignTime>
|
|
<AutoGen>True</AutoGen>
|
|
<DependentUpon>Common.resx</DependentUpon>
|
|
</Compile>
|
|
</ItemGroup>
|
|
|
|
<ProjectExtensions>
|
|
<VisualStudio>
|
|
<UserProperties client-app_4package_1json__JsonSchema="https://json.schemastore.org/phraseapp.json" />
|
|
</VisualStudio>
|
|
</ProjectExtensions>
|
|
|
|
</Project>
|