Files
BQP/srcs/RobotNet10/RobotApp/RobotNet10.RobotApp/RobotNet10.RobotApp.csproj
2026-07-13 09:25:40 +07:00

112 lines
6.9 KiB
XML

<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<UserSecretsId>aspnet-RobotNet10_RobotApp-2d93433f-4966-4fc0-8691-543f662b5ed9</UserSecretsId>
<BlazorDisableThrowNavigationException>true</BlazorDisableThrowNavigationException>
<NoWarn>CA1873</NoWarn>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<!-- Target runtime -->
<RuntimeIdentifier>linux-arm64</RuntimeIdentifier>
<!-- Build mode -->
<PublishSingleFile>true</PublishSingleFile>
<SelfContained>true</SelfContained>
<!-- Tối ưu -->
<PublishTrimmed>false</PublishTrimmed>
<EnableCompressionInSingleFile>false</EnableCompressionInSingleFile>
<!-- Bắt buộc cho single file -->
<UseAppHost>true</UseAppHost>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Appccelerate.StateMachine" Version="6.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="10.0.3" />
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="10.0.3" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="10.0.3" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="10.0.3" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="10.0.3">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="MQTTnet" Version="5.1.0.1559" />
<PackageReference Include="NLog" Version="6.1.1" />
<PackageReference Include="NLog.Web.AspNetCore" Version="6.1.2" />
<PackageReference Include="SDL2-CS" Version="2.0.0" GeneratePathProperty="true" />
<PackageReference Include="SkiaSharp" Version="3.119.2" />
<PackageReference Include="SkiaSharp.NativeAssets.Linux.NoDependencies" Version="3.119.2" />
<PackageReference Include="System.IO.Ports" Version="10.0.3" />
</ItemGroup>
<ItemGroup>
<Compile Include="$(PkgSDL2-CS)\content\net20\SDL2-CS\*.cs" />
</ItemGroup>
<ItemGroup>
<!-- Cartographer is not used in this deployment profile -->
<Compile Remove="SLAM/Cartographer/**/*.cs" />
<Compile Remove="Hubs/SLAMHub.cs" />
<!-- Legacy C# marker detection implementation is disabled; runtime uses C API integration. -->
<Compile Remove="Detection/**/*.cs" />
<Compile Include="Detection/IDetectSession.cs" />
<Compile Include="Detection/IMarkerDetector.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Commons\RobotNet10.CustomConfiguration\RobotNet10.CustomConfiguration.csproj" />
<ProjectReference Include="..\..\Commons\RobotNet10.MapManager\RobotNet10.MapManager.csproj" />
<ProjectReference Include="..\..\Commons\RobotNet10.MqttConnection\RobotNet10.MqttConnection.csproj" />
<ProjectReference Include="..\..\Commons\RobotNet10.NavigationTune\RobotNet10.NavigationTune.csproj" />
<ProjectReference Include="..\..\Commons\RobotNet10.ScriptEngine\RobotNet10.ScriptEngine.csproj" />
<ProjectReference Include="..\..\Shared\RobotNet10.Shared\RobotNet10.Shared.csproj" />
<ProjectReference Include="..\Communication\CartographerSharp\CartographerSharp.csproj" />
<ProjectReference Include="..\Communication\Olei.LidarSensor\Olei.LidarSensor.csproj" />
<ProjectReference Include="..\Communication\RobotNet10.CANOpen.CiA402\RobotNet10.CANOpen.CiA402.csproj" />
<ProjectReference Include="..\Communication\Sick.ColaB\Sick.ColaB.csproj" />
<ProjectReference Include="..\Communication\Sick.SafetyScanners\Sick.SafetyScanners.csproj" />
<ProjectReference Include="..\Communication\Sick.Tim781s.Colab\Sick.Tim781s.Colab.csproj" />
<ProjectReference Include="..\Communication\SickScanXdApi\RobotNet10.RobotApp.SickScanXdApi.csproj" />
<ProjectReference Include="..\RobotNet10.RobotApp.Client\RobotNet10.RobotApp.Client.csproj" />
<ProjectReference Include="..\..\Shared\RobotNet.VDA5050\RobotNet.VDA5050.csproj" />
<ProjectReference Include="..\RobotNet10.RobotApp.Shared\RobotNet10.RobotApp.Shared.csproj" />
</ItemGroup>
<ItemGroup>
<Content Update="ModelConfigs">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<Folder Include="Data\Migrations\MapDb\" />
<Folder Include="Data\Migrations\TuneDb\" />
</ItemGroup>
<!-- SDL2-CS uses "SDL2.dll"; on Linux the loader looks for libSDL2.dll.so. Symlink system lib into output. -->
<!-- Check both /lib and /usr/lib paths (differs between Ubuntu versions and boards) -->
<Target Name="LinkSdl2Linux" AfterTargets="Build;Publish" Condition="'$(RuntimeIdentifier)' != '' and $(RuntimeIdentifier.Contains('linux'))">
<PropertyGroup>
<_Sdl2Lib Condition="Exists('/lib/aarch64-linux-gnu/libSDL2-2.0.so.0')">/lib/aarch64-linux-gnu/libSDL2-2.0.so.0</_Sdl2Lib>
<_Sdl2Lib Condition="Exists('/usr/lib/aarch64-linux-gnu/libSDL2-2.0.so.0')">/usr/lib/aarch64-linux-gnu/libSDL2-2.0.so.0</_Sdl2Lib>
<_Sdl2Lib Condition="Exists('/lib/x86_64-linux-gnu/libSDL2-2.0.so.0')">/lib/x86_64-linux-gnu/libSDL2-2.0.so.0</_Sdl2Lib>
<_Sdl2Lib Condition="Exists('/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0')">/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0</_Sdl2Lib>
</PropertyGroup>
<MakeDir Directories="$(OutputPath)runtimes/linux-arm64/native" Condition="'$(RuntimeIdentifier)' == 'linux-arm64'" />
<MakeDir Directories="$(OutputPath)runtimes/linux-x64/native" Condition="'$(RuntimeIdentifier)' == 'linux-x64'" />
<Exec Command="ln -sf $(_Sdl2Lib) $(OutputPath)libSDL2.dll.so" Condition="'$(_Sdl2Lib)' != ''" />
<Exec Command="ln -sf $(_Sdl2Lib) $(OutputPath)runtimes/linux-arm64/native/libSDL2.dll.so" Condition="'$(RuntimeIdentifier)' == 'linux-arm64' and '$(_Sdl2Lib)' != ''" />
<Exec Command="ln -sf $(_Sdl2Lib) $(OutputPath)runtimes/linux-x64/native/libSDL2.dll.so" Condition="'$(RuntimeIdentifier)' == 'linux-x64' and '$(_Sdl2Lib)' != ''" />
</Target>
<!-- When building without -r (e.g. dotnet run), output is base OutputPath; link there when on Linux. -->
<Target Name="LinkSdl2LinuxDefault" AfterTargets="Build;Publish" Condition="'$(RuntimeIdentifier)' == ''">
<Exec Command="ln -sf /lib/aarch64-linux-gnu/libSDL2-2.0.so.0 $(OutputPath)libSDL2.dll.so" Condition="Exists('/lib/aarch64-linux-gnu/libSDL2-2.0.so.0')" />
<Exec Command="ln -sf /usr/lib/aarch64-linux-gnu/libSDL2-2.0.so.0 $(OutputPath)libSDL2.dll.so" Condition="Exists('/usr/lib/aarch64-linux-gnu/libSDL2-2.0.so.0')" />
<Exec Command="ln -sf /lib/x86_64-linux-gnu/libSDL2-2.0.so.0 $(OutputPath)libSDL2.dll.so" Condition="Exists('/lib/x86_64-linux-gnu/libSDL2-2.0.so.0')" />
<Exec Command="ln -sf /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0 $(OutputPath)libSDL2.dll.so" Condition="Exists('/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0')" />
</Target>
</Project>