Files
decePubClient/decePubClient.csproj
T
thepraandClaude Opus 5.5 3bc511421e
Build / Build (push) Successful in 1m2s
The client runs on the current .NET 10 libraries
The Blazor, HTTP and localization libraries move from 10.0.9 to 10.0.14, the build uses SDK 10.0.403, and the
house-rules checks are the current version.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W4YtEJrgxG12Pc39Fai8Bd
2026-11-10 06:08:18 +01:00

104 lines
5.5 KiB
XML

<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<Nullable>disable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<ServiceWorkerAssetsManifest>service-worker-assets.js</ServiceWorkerAssetsManifest>
<BlazorWebAssemblyLoadAllGlobalizationData>true</BlazorWebAssemblyLoadAllGlobalizationData>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="10.0.14" />
<PackageReference Include="Microsoft.AspNetCore.Components.Authorization" Version="10.0.14" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="10.0.14" PrivateAssets="all" />
<PackageReference Include="Microsoft.Extensions.Http" Version="10.0.14" />
<PackageReference Include="BlazorDownloadFileFast" Version="1.0.0.1" />
<PackageReference Include="Blazored.LocalStorage" Version="4.5.0" />
<PackageReference Include="Microsoft.Extensions.Localization" Version="10.0.14" />
<PackageReference Include="Toolbelt.Blazor.HeadElement" Version="7.3.1" />
</ItemGroup>
<ItemGroup>
<ServiceWorker Include="wwwroot\service-worker.js" PublishedContent="wwwroot\service-worker.published.js" />
</ItemGroup>
<!-- Tailwind CSS standalone + daisyUI, vendored in tools/tailwind/ (see tools/tailwind.sh), compile Styles/app.css into
wwwroot/css/app.css on every build, offline. The output is gitignored, so on a clean clone it doesn't exist when
the wwwroot\** Content glob is evaluated; IncludeTailwindOutput adds it before ResolveProjectStaticWebAssets,
without which it would be published without its .gz/.br copies and outside service-worker-assets.js. -->
<PropertyGroup>
<TailwindVendorDir>$(MSBuildProjectDirectory)/tools/tailwind/</TailwindVendorDir>
<TailwindExe>$(MSBuildProjectDirectory)/.tools/tailwind/tailwindcss</TailwindExe>
<TailwindMode Condition="'$(Configuration)' == 'Release'">--minify</TailwindMode>
<TailwindMode Condition="'$(TailwindMode)' == ''">--optimize</TailwindMode>
</PropertyGroup>
<ItemGroup>
<TailwindSource Include="Styles/**/*.css;**/*.razor;**/*.cs;wwwroot/index.html" Exclude="bin/**;obj/**;.tools/**;tools/**" />
</ItemGroup>
<!-- Unpacks the vendored binary when it is missing or the vendored archive changed (an upgrade). -->
<Target Name="EnsureTailwindTools" Inputs="$(TailwindVendorDir)tailwindcss-linux-x64.xz;tools/tailwind.sh" Outputs="$(TailwindExe)">
<Exec Command="bash tools/tailwind.sh prepare" WorkingDirectory="$(MSBuildProjectDirectory)" />
<Touch Files="$(TailwindExe)" />
</Target>
<Target Name="TailwindCompile" DependsOnTargets="EnsureTailwindTools"
Condition="'$(DesignTimeBuild)' != 'true' And '$(NoBuild)' != 'true' And '$(SkipTailwind)' != 'true'"
Inputs="@(TailwindSource);$(TailwindExe);$(TailwindVendorDir)daisyui.mjs;$(TailwindVendorDir)daisyui-theme.mjs;tools/css/motion.py;$(MSBuildProjectFullPath)"
Outputs="wwwroot/css/app.css;$(IntermediateOutputPath)tailwind.stamp">
<Exec Command="&quot;$(TailwindExe)&quot; -i Styles/app.css -o wwwroot/css/app.css $(TailwindMode)" WorkingDirectory="$(MSBuildProjectDirectory)" />
<Exec Command="python3 -I tools/css/motion.py wwwroot/css/app.css" WorkingDirectory="$(MSBuildProjectDirectory)" />
<!-- The CLI leaves an unchanged output untouched, which would make this target rerun on every build. -->
<Touch Files="wwwroot/css/app.css;$(IntermediateOutputPath)tailwind.stamp" AlwaysCreate="true" />
</Target>
<Target Name="IncludeTailwindOutput" BeforeTargets="ResolveProjectStaticWebAssets" DependsOnTargets="TailwindCompile">
<!-- Spelled exactly like the SDK's wwwroot\** glob: publish de-duplicates by comparing OriginalItemSpec strings. -->
<ItemGroup>
<Content Remove="wwwroot\css\app.css" />
<Content Include="wwwroot\css\app.css" Condition="Exists('wwwroot\css\app.css')" />
</ItemGroup>
</Target>
<ItemGroup>
<!-- Points the development build at a local PrivaPub; the published app reads appsettings.json only. -->
<Content Update="wwwroot\appsettings.Development.json" CopyToPublishDirectory="Never" />
<!-- Points the app at the pasture's PrivaPub (a publish with WasmApplicationEnvironmentName=Pasture, which SocialPub's
tools/pasture/peers/decepub.sh serves);
any other publish leaves it out, and the deploy checks that it did. -->
<Content Update="wwwroot\appsettings.Pasture.json" CopyToPublishDirectory="Never" Condition="'$(WasmApplicationEnvironmentName)' != 'Pasture'" />
</ItemGroup>
<ItemGroup>
<Compile Update="Resources\ErrorMessages.Designer.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>ErrorMessages.resx</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\SocialPub\PrivaPub.ClientModels\PrivaPub.ClientModels.csproj" />
</ItemGroup>
<ItemGroup>
<Content Update="wwwroot\vendor\ionicons.min.css">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="Resources\AllStrings.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>AllStrings.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Update="Resources\ErrorMessages.resx">
<Generator>PublicResXFileCodeGenerator</Generator>
<LastGenOutput>ErrorMessages.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
</Project>