fix(shared,bot,discordbot): make club-picker Dapper calls AOT-safe (v3.9.2)
Deploy Telegram Bot / build-and-push (push) Successful in 7m18s
Deploy Telegram Bot / scan-images (push) Failing after 17s
Deploy Telegram Bot / deploy (push) Has been skipped

The 3.9.1 hotfix only repaired WizardDraftRepository, the most common
Dapper call in the wizard. The same AOT-unsafe CommandDefinition pattern
remained in 4 other places that the user hit immediately after the
deploy: the 'Choose visibility' wizard step triggers GetOwnerClubsAsync
when the user picks 'Публичная в витрине клуба' or 'Только для членов
клуба'. The wizard swallowed PlatformNotSupportedException, the
callback ack replied with '⚠️ Ошибка', and the next step never rendered.
Privacy 'didn't stick' from the user's perspective.

Two changes to fix the Discord side as well:

1. Switched GetOwnerClubsAsync / LoadClubsAsync / LoadManagerUserIdsAsync
   to the direct (sql, params) overload across TelegramWizardMessenger,
   DiscordWizardMessenger, DiscordWizardInteractionModule, and
   DiscordPermissionLookup — same pattern as the 3.9.1 fix.

2. Added Dapper.AOT module attribute ([module: Dapper.DapperAot]) and
   InterceptorsPreviewNamespaces to the DiscordBot project. The
   DiscordBot assembly was previously skipped by the AOT source
   generator, so even the direct-overload fix wouldn't have produced
   interceptors for the Discord-specific Dapper call sites. With this
   addition, the generator emits 3 DiscordBot-specific interceptors
   (DiscordWizardMessenger, DiscordWizardInteractionModule,
   DiscordPermissionLookup) and the AssemblyLoad ships with the right
   GmRelay.DiscordBot.generated.cs.

Also expanded the AOT shape regression tests to cover all 4
CommandDefinition sites + added a 'containingClass' parameter to
ExtractMethodBody to disambiguate the duplicated LoadClubsAsync names
in DiscordWizardInteractionModule.

Bumps: 3.9.1 -> 3.9.2.
This commit is contained in:
2026-06-08 10:48:24 +03:00
parent 065e8011ee
commit 2c9016a383
200 changed files with 5856 additions and 27 deletions
+365
View File
@@ -0,0 +1,365 @@
Сборка начата 28.05.2026 16:39:58.
1>Проект "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" в узле 1 (целевые объекты Restore).
1>_GetAllRestoreProjectPathItems:
Определение проектов для восстановления...
1>Проект "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" (1) выполняет сборку "D:\Projects\Game\src\GmRelay.Bot\GmRelay.Bot.csproj" (2:4) в узле 1 (целевые объекты _GenerateProjectRestoreGraph).
2>AddPrunePackageReferences:
Loading prune package data from PrunePackageData folder
Failed to load prune package data from PrunePackageData folder, loading from targeting packs instead
Looking for targeting packs in C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref
Pack directories found: C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.5
1>Проект "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" (1) выполняет сборку "D:\Projects\Game\src\GmRelay.Web\GmRelay.Web.csproj" (5:4) в узле 2 (целевые объекты _GenerateProjectRestoreGraph).
5>AddPrunePackageReferences:
Loading prune package data from PrunePackageData folder
Failed to load prune package data from PrunePackageData folder, loading from targeting packs instead
1>Проект "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" (1) выполняет сборку "D:\Projects\Game\src\GmRelay.Shared\GmRelay.Shared.csproj" (6:6) в узле 4 (целевые объекты _GenerateProjectRestoreGraph).
6>AddPrunePackageReferences:
Loading prune package data from PrunePackageData folder
1>Проект "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" (1) выполняет сборку "D:\Projects\Game\src\GmRelay.DiscordBot\GmRelay.DiscordBot.csproj" (4:4) в узле 3 (целевые объекты _GenerateProjectRestoreGraph).
4>AddPrunePackageReferences:
Loading prune package data from PrunePackageData folder
6>AddPrunePackageReferences:
Failed to load prune package data from PrunePackageData folder, loading from targeting packs instead
4>AddPrunePackageReferences:
Failed to load prune package data from PrunePackageData folder, loading from targeting packs instead
5>AddPrunePackageReferences:
Looking for targeting packs in C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref
2>AddPrunePackageReferences:
Found package overrides file C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.5\data\PackageOverrides.txt
5>AddPrunePackageReferences:
Pack directories found: C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.5
4>AddPrunePackageReferences:
Looking for targeting packs in C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref
6>AddPrunePackageReferences:
Looking for targeting packs in C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref
4>AddPrunePackageReferences:
Pack directories found: C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.5
6>AddPrunePackageReferences:
Pack directories found: C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.5
5>AddPrunePackageReferences:
Found package overrides file C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.5\data\PackageOverrides.txt
6>AddPrunePackageReferences:
Found package overrides file C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.5\data\PackageOverrides.txt
4>AddPrunePackageReferences:
Found package overrides file C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.5\data\PackageOverrides.txt
5>AddPrunePackageReferences:
Loading prune package data from PrunePackageData folder
Failed to load prune package data from PrunePackageData folder, loading from targeting packs instead
Looking for targeting packs in C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref
Pack directories found: C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\10.0.5
Found package overrides file C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\10.0.5\data\PackageOverrides.txt
2>Сборка проекта "D:\Projects\Game\src\GmRelay.Bot\GmRelay.Bot.csproj" завершена (целевые объекты _GenerateProjectRestoreGraph).
1>Проект "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" (1) выполняет сборку "D:\Projects\Game\src\GmRelay.ServiceDefaults\GmRelay.ServiceDefaults.csproj" (3:6) в узле 1 (целевые объекты _GenerateProjectRestoreGraph).
3>AddPrunePackageReferences:
Loading prune package data from PrunePackageData folder
Failed to load prune package data from PrunePackageData folder, loading from targeting packs instead
Looking for targeting packs in C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref
Pack directories found: C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.5
Found package overrides file C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.5\data\PackageOverrides.txt
6>Сборка проекта "D:\Projects\Game\src\GmRelay.Shared\GmRelay.Shared.csproj" завершена (целевые объекты _GenerateProjectRestoreGraph).
3>AddPrunePackageReferences:
Loading prune package data from PrunePackageData folder
Failed to load prune package data from PrunePackageData folder, loading from targeting packs instead
Looking for targeting packs in C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref
Pack directories found: C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\10.0.5
Found package overrides file C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\10.0.5\data\PackageOverrides.txt
4>Сборка проекта "D:\Projects\Game\src\GmRelay.DiscordBot\GmRelay.DiscordBot.csproj" завершена (целевые объекты _GenerateProjectRestoreGraph).
5>Сборка проекта "D:\Projects\Game\src\GmRelay.Web\GmRelay.Web.csproj" завершена (целевые объекты _GenerateProjectRestoreGraph).
3>Сборка проекта "D:\Projects\Game\src\GmRelay.ServiceDefaults\GmRelay.ServiceDefaults.csproj" завершена (целевые объекты _GenerateProjectRestoreGraph).
1>Restore:
При проверке цепочки сертификатов X.509 будет использоваться хранилище доверия по умолчанию, выбранное .NET для подписывания кода.
При проверке цепочки сертификатов X.509 будет использоваться хранилище доверия по умолчанию, выбранное .NET для установки метки времени.
Файл ресурсов не был изменен. Пропуск записи файла ресурсов. Путь: D:\Projects\Game\src\GmRelay.Shared\obj\project.assets.json
Файл ресурсов не был изменен. Пропуск записи файла ресурсов. Путь: D:\Projects\Game\src\GmRelay.Web\obj\project.assets.json
Файл ресурсов не был изменен. Пропуск записи файла ресурсов. Путь: D:\Projects\Game\src\GmRelay.ServiceDefaults\obj\project.assets.json
Файл ресурсов не был изменен. Пропуск записи файла ресурсов. Путь: D:\Projects\Game\src\GmRelay.DiscordBot\obj\project.assets.json
Файл ресурсов не был изменен. Пропуск записи файла ресурсов. Путь: D:\Projects\Game\src\GmRelay.Bot\obj\project.assets.json
Файл ресурсов не был изменен. Пропуск записи файла ресурсов. Путь: D:\Projects\Game\tests\GmRelay.Bot.Tests\obj\project.assets.json
Восстановлен D:\Projects\Game\src\GmRelay.Bot\GmRelay.Bot.csproj (за 49 мс).
Восстановлен D:\Projects\Game\src\GmRelay.Shared\GmRelay.Shared.csproj (за 49 мс).
Восстановлен D:\Projects\Game\src\GmRelay.ServiceDefaults\GmRelay.ServiceDefaults.csproj (за 49 мс).
Восстановлен D:\Projects\Game\src\GmRelay.Web\GmRelay.Web.csproj (за 49 мс).
Восстановлен D:\Projects\Game\src\GmRelay.DiscordBot\GmRelay.DiscordBot.csproj (за 49 мс).
Восстановлен D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj (за 49 мс).
Использованные файлы конфигурации NuGet:
C:\Users\hegin\AppData\Roaming\NuGet\NuGet.Config
Использованные веб-каналы:
https://api.nuget.org/v3/index.json
Все проекты обновлены для восстановления.
1>Сборка проекта "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" завершена (целевые объекты Restore).
1:7>Проект "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" в узле 3 (целевые объекты VSTest).
1>BuildProject:
Сборка начата, подождите...
1:7>Проект "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" (1:7) выполняет сборку "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" (1:8) в узле 3 (целевые объекты по умолчанию).
1:8>Проект "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" (1:8) выполняет сборку "D:\Projects\Game\src\GmRelay.ServiceDefaults\GmRelay.ServiceDefaults.csproj" (3:8) в узле 1 (целевые объекты по умолчанию).
3>GenerateTargetFrameworkMonikerAttribute:
Целевой объект "GenerateTargetFrameworkMonikerAttribute" пропускается, так как все выходные файлы актуальны по отношению к входным.
1:8>Проект "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" (1:8) выполняет сборку "D:\Projects\Game\src\GmRelay.Shared\GmRelay.Shared.csproj" (6:8) в узле 5 (целевые объекты по умолчанию).
6>GenerateTargetFrameworkMonikerAttribute:
Целевой объект "GenerateTargetFrameworkMonikerAttribute" пропускается, так как все выходные файлы актуальны по отношению к входным.
3>CoreGenerateAssemblyInfo:
Целевой объект "CoreGenerateAssemblyInfo" пропускается, так как все выходные файлы актуальны по отношению к входным.
6>CoreGenerateAssemblyInfo:
Целевой объект "CoreGenerateAssemblyInfo" пропускается, так как все выходные файлы актуальны по отношению к входным.
3>_GenerateSourceLinkFile:
Source Link пуст, файл "obj\Debug\net10.0\GmRelay.ServiceDefaults.sourcelink.json" не существует.
6>_GenerateSourceLinkFile:
Source Link пуст, файл "obj\Debug\net10.0\GmRelay.Shared.sourcelink.json" не существует.
3>CoreCompile:
Целевой объект "CoreCompile" пропускается, так как все выходные файлы актуальны по отношению к входным.
6>CoreCompile:
Целевой объект "CoreCompile" пропускается, так как все выходные файлы актуальны по отношению к входным.
GenerateBuildDependencyFile:
Целевой объект "GenerateBuildDependencyFile" пропускается, так как все выходные файлы актуальны по отношению к входным.
3>GenerateBuildDependencyFile:
Целевой объект "GenerateBuildDependencyFile" пропускается, так как все выходные файлы актуальны по отношению к входным.
6>CopyFilesToOutputDirectory:
GmRelay.Shared -> D:\Projects\Game\src\GmRelay.Shared\bin\Debug\net10.0\GmRelay.Shared.dll
3>CopyFilesToOutputDirectory:
GmRelay.ServiceDefaults -> D:\Projects\Game\src\GmRelay.ServiceDefaults\bin\Debug\net10.0\GmRelay.ServiceDefaults.dll
6>Сборка проекта "D:\Projects\Game\src\GmRelay.Shared\GmRelay.Shared.csproj" завершена (целевые объекты по умолчанию).
3>Сборка проекта "D:\Projects\Game\src\GmRelay.ServiceDefaults\GmRelay.ServiceDefaults.csproj" завершена (целевые объекты по умолчанию).
1:8>Проект "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" (1:8) выполняет сборку "D:\Projects\Game\src\GmRelay.Bot\GmRelay.Bot.csproj" (2:6) в узле 2 (целевые объекты по умолчанию).
2>GenerateTargetFrameworkMonikerAttribute:
Целевой объект "GenerateTargetFrameworkMonikerAttribute" пропускается, так как все выходные файлы актуальны по отношению к входным.
1:8>Проект "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" (1:8) выполняет сборку "D:\Projects\Game\src\GmRelay.DiscordBot\GmRelay.DiscordBot.csproj" (4:6) в узле 4 (целевые объекты по умолчанию).
4>GenerateTargetFrameworkMonikerAttribute:
Целевой объект "GenerateTargetFrameworkMonikerAttribute" пропускается, так как все выходные файлы актуальны по отношению к входным.
2>CoreGenerateAssemblyInfo:
Целевой объект "CoreGenerateAssemblyInfo" пропускается, так как все выходные файлы актуальны по отношению к входным.
4>CoreGenerateAssemblyInfo:
Целевой объект "CoreGenerateAssemblyInfo" пропускается, так как все выходные файлы актуальны по отношению к входным.
2>_GenerateSourceLinkFile:
Source Link пуст, файл "obj\Debug\net10.0\GmRelay.Bot.sourcelink.json" не существует.
1:8>Проект "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" (1:8) выполняет сборку "D:\Projects\Game\src\GmRelay.Web\GmRelay.Web.csproj" (5:6) в узле 3 (целевые объекты по умолчанию).
5>GenerateTargetFrameworkMonikerAttribute:
Целевой объект "GenerateTargetFrameworkMonikerAttribute" пропускается, так как все выходные файлы актуальны по отношению к входным.
4>_GenerateSourceLinkFile:
Source Link пуст, файл "obj\Debug\net10.0\GmRelay.DiscordBot.sourcelink.json" не существует.
2>CoreCompile:
Целевой объект "CoreCompile" пропускается, так как все выходные файлы актуальны по отношению к входным.
_CreateAppHost:
Целевой объект "_CreateAppHost" пропускается, так как все выходные файлы актуальны по отношению к входным.
4>CoreCompile:
Целевой объект "CoreCompile" пропускается, так как все выходные файлы актуальны по отношению к входным.
_CreateAppHost:
Целевой объект "_CreateAppHost" пропускается, так как все выходные файлы актуальны по отношению к входным.
2>_CopyOutOfDateSourceItemsToOutputDirectory:
Целевой объект "_CopyOutOfDateSourceItemsToOutputDirectory" пропускается, так как все выходные файлы актуальны по отношению к входным.
4>_CopyOutOfDateSourceItemsToOutputDirectory:
Целевой объект "_CopyOutOfDateSourceItemsToOutputDirectory" пропускается, так как все выходные файлы актуальны по отношению к входным.
GenerateBuildDependencyFile:
Целевой объект "GenerateBuildDependencyFile" пропускается, так как все выходные файлы актуальны по отношению к входным.
2>GenerateBuildDependencyFile:
Целевой объект "GenerateBuildDependencyFile" пропускается, так как все выходные файлы актуальны по отношению к входным.
4>GenerateBuildRuntimeConfigurationFiles:
Целевой объект "GenerateBuildRuntimeConfigurationFiles" пропускается, так как все выходные файлы актуальны по отношению к входным.
2>GenerateBuildRuntimeConfigurationFiles:
Целевой объект "GenerateBuildRuntimeConfigurationFiles" пропускается, так как все выходные файлы актуальны по отношению к входным.
4>CopyFilesToOutputDirectory:
GmRelay.DiscordBot -> D:\Projects\Game\src\GmRelay.DiscordBot\bin\Debug\net10.0\GmRelay.DiscordBot.dll
2>CopyFilesToOutputDirectory:
GmRelay.Bot -> D:\Projects\Game\src\GmRelay.Bot\bin\Debug\net10.0\GmRelay.Bot.dll
2>Сборка проекта "D:\Projects\Game\src\GmRelay.Bot\GmRelay.Bot.csproj" завершена (целевые объекты по умолчанию).
4>Сборка проекта "D:\Projects\Game\src\GmRelay.DiscordBot\GmRelay.DiscordBot.csproj" завершена (целевые объекты по умолчанию).
5>CoreGenerateAssemblyInfo:
Целевой объект "CoreGenerateAssemblyInfo" пропускается, так как все выходные файлы актуальны по отношению к входным.
_DiscoverMvcApplicationParts:
Целевой объект "_DiscoverMvcApplicationParts" пропускается, так как все выходные файлы актуальны по отношению к входным.
_GenerateSourceLinkFile:
Source Link пуст, файл "obj\Debug\net10.0\GmRelay.Web.sourcelink.json" не существует.
CoreCompile:
Целевой объект "CoreCompile" пропускается, так как все выходные файлы актуальны по отношению к входным.
_CreateAppHost:
Целевой объект "_CreateAppHost" пропускается, так как все выходные файлы актуальны по отношению к входным.
_ProcessScopedCssFiles:
Целевой объект "_ProcessScopedCssFiles" пропускается, так как все выходные файлы актуальны по отношению к входным.
ResolveBuildCompressedStaticWebAssetsConfiguration:
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\4csigzgafp-{0}-hi2qlyauic-hi2qlyauic.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\app.css'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\bh8hdo3x56-{0}-bqjiyaj88i-bqjiyaj88i.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-grid.css'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\9tpymki44d-{0}-c2jlpeoesf-c2jlpeoesf.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-grid.css.map'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\3ufhluhukt-{0}-erw9l3u2r3-erw9l3u2r3.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-grid.min.css'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\owh24a5pu2-{0}-aexeepp0ev-aexeepp0ev.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-grid.min.css.map'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\ssb8lybfmv-{0}-d7shbmvgxk-d7shbmvgxk.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-grid.rtl.css'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\7o3n22bkis-{0}-ausgxo2sd3-ausgxo2sd3.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-grid.rtl.css.map'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\c4n23llmfm-{0}-k8d9w2qqmf-k8d9w2qqmf.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-grid.rtl.min.css'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\oo0k97obxs-{0}-cosvhxvwiu-cosvhxvwiu.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-grid.rtl.min.css.map'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\3ni2ce7d6r-{0}-ub07r2b239-ub07r2b239.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.css'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\0yd6yduj13-{0}-fvhpjtyr6v-fvhpjtyr6v.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.css.map'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\qgg7tqg96t-{0}-b7pk76d08c-b7pk76d08c.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.min.css'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\mne9upwpwm-{0}-fsbi9cje9m-fsbi9cje9m.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.min.css.map'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\225pf96br9-{0}-rzd6atqjts-rzd6atqjts.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.rtl.css'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\35i9ucq04c-{0}-ee0r1s7dh0-ee0r1s7dh0.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.rtl.css.map'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\8lfmzdik84-{0}-dxx9fxp4il-dxx9fxp4il.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.rtl.min.css'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\1jt5owwcfx-{0}-jd9uben2k1-jd9uben2k1.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.rtl.min.css.map'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\hstlxvezy9-{0}-khv3u5hwcm-khv3u5hwcm.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.css'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\oca58j0tw7-{0}-r4e9w2rdcm-r4e9w2rdcm.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.css.map'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\0v3sv147pt-{0}-lcd1t2u6c8-lcd1t2u6c8.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.min.css'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\0a5wgpyil0-{0}-c2oey78nd0-c2oey78nd0.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.min.css.map'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\9g3ujgh8kz-{0}-tdbxkamptv-tdbxkamptv.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.rtl.css'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\iuy63rf0bu-{0}-j5mq2jizvt-j5mq2jizvt.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.rtl.css.map'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\wk8zc7ryz6-{0}-06098lyss8-06098lyss8.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.rtl.min.css'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\jb2rkjvbkn-{0}-nvvlpmu67g-nvvlpmu67g.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.rtl.min.css.map'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\8myuzh4jcv-{0}-s35ty4nyc5-s35ty4nyc5.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap.css'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\qon4yozyga-{0}-pj5nd1wqec-pj5nd1wqec.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap.css.map'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\bksh7yp01k-{0}-46ein0sx1k-46ein0sx1k.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap.min.css'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\97kp90co2m-{0}-v0zj4ognzu-v0zj4ognzu.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap.min.css.map'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\ed5dpbkcmp-{0}-37tfw0ft22-37tfw0ft22.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap.rtl.css'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\4w2hlgqons-{0}-hrwsygsryq-hrwsygsryq.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap.rtl.css.map'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\1gnwh3bc5f-{0}-pk9g2wxc8p-pk9g2wxc8p.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap.rtl.min.css'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\1hju2kjsnm-{0}-ft3s53vfgj-ft3s53vfgj.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\css\bootstrap.rtl.min.css.map'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\j3osi24043-{0}-6cfz1n2cew-6cfz1n2cew.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\js\bootstrap.bundle.js'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\px5jz4gn2k-{0}-6pdc2jztkx-6pdc2jztkx.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\js\bootstrap.bundle.js.map'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\qmfc455bqd-{0}-493y06b0oq-493y06b0oq.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\js\bootstrap.bundle.min.js'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\93uy6jgo2d-{0}-iovd86k7lj-iovd86k7lj.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\js\bootstrap.bundle.min.js.map'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\2x6q1594r6-{0}-vr1egmr9el-vr1egmr9el.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\js\bootstrap.esm.js'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\ung2txg4o1-{0}-kbrnm935zg-kbrnm935zg.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\js\bootstrap.esm.js.map'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\u3jewzt1vl-{0}-jj8uyg4cgr-jj8uyg4cgr.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\js\bootstrap.esm.min.js'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\79xbwypaqj-{0}-y7v9cxd14o-y7v9cxd14o.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\js\bootstrap.esm.min.js.map'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\tkhsoyr1gw-{0}-notf2xhcfb-notf2xhcfb.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\js\bootstrap.js'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\k7ns0ox31a-{0}-h1s4sie4z3-h1s4sie4z3.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\js\bootstrap.js.map'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\doe31mxljt-{0}-63fj8s7r0e-63fj8s7r0e.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\js\bootstrap.min.js'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\m4sfs0go6y-{0}-0j3bgjxly4-0j3bgjxly4.gz' for 'D:\Projects\Game\src\GmRelay.Web\wwwroot\lib\bootstrap\dist\js\bootstrap.min.js.map'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\3ej8wiykds-{0}-abdmv1u4y3-abdmv1u4y3.gz' for 'D:\Projects\Game\src\GmRelay.Web\Components\Layout\ReconnectModal.razor.js'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\am1eegk6vr-{0}-b9228eflpl-b9228eflpl.gz' for 'C:\Users\hegin\.nuget\packages\microsoft.aspnetcore.app.internal.assets\10.0.5\_framework\blazor.web.js'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\2sew0bael6-{0}-2tj1sjhksk-2tj1sjhksk.gz' for 'C:\Users\hegin\.nuget\packages\microsoft.aspnetcore.app.internal.assets\10.0.5\_framework\blazor.server.js'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\str9rlkncy-{0}-q1j99dsq8o-q1j99dsq8o.gz' for 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\scopedcss\bundle\GmRelay.Web.styles.css'.
Accepted compressed asset 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\zbvq0bdneu-{0}-q1j99dsq8o-q1j99dsq8o.gz' for 'D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\scopedcss\projectbundle\GmRelay.Web.bundle.scp.css'.
Resolved 50 compressed assets for 50 candidate assets.
ResolveBuildCompressedStaticWebAssets:
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\str9rlkncy-{0}-q1j99dsq8o-q1j99dsq8o.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\bh8hdo3x56-{0}-bqjiyaj88i-bqjiyaj88i.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\9tpymki44d-{0}-c2jlpeoesf-c2jlpeoesf.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\3ufhluhukt-{0}-erw9l3u2r3-erw9l3u2r3.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\owh24a5pu2-{0}-aexeepp0ev-aexeepp0ev.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\ssb8lybfmv-{0}-d7shbmvgxk-d7shbmvgxk.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\7o3n22bkis-{0}-ausgxo2sd3-ausgxo2sd3.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\c4n23llmfm-{0}-k8d9w2qqmf-k8d9w2qqmf.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\oo0k97obxs-{0}-cosvhxvwiu-cosvhxvwiu.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\3ni2ce7d6r-{0}-ub07r2b239-ub07r2b239.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\0yd6yduj13-{0}-fvhpjtyr6v-fvhpjtyr6v.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\qgg7tqg96t-{0}-b7pk76d08c-b7pk76d08c.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\mne9upwpwm-{0}-fsbi9cje9m-fsbi9cje9m.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\225pf96br9-{0}-rzd6atqjts-rzd6atqjts.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\35i9ucq04c-{0}-ee0r1s7dh0-ee0r1s7dh0.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\8lfmzdik84-{0}-dxx9fxp4il-dxx9fxp4il.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\1jt5owwcfx-{0}-jd9uben2k1-jd9uben2k1.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\hstlxvezy9-{0}-khv3u5hwcm-khv3u5hwcm.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\oca58j0tw7-{0}-r4e9w2rdcm-r4e9w2rdcm.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\0v3sv147pt-{0}-lcd1t2u6c8-lcd1t2u6c8.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\0a5wgpyil0-{0}-c2oey78nd0-c2oey78nd0.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\9g3ujgh8kz-{0}-tdbxkamptv-tdbxkamptv.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\iuy63rf0bu-{0}-j5mq2jizvt-j5mq2jizvt.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\wk8zc7ryz6-{0}-06098lyss8-06098lyss8.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\jb2rkjvbkn-{0}-nvvlpmu67g-nvvlpmu67g.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\8myuzh4jcv-{0}-s35ty4nyc5-s35ty4nyc5.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\qon4yozyga-{0}-pj5nd1wqec-pj5nd1wqec.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\bksh7yp01k-{0}-46ein0sx1k-46ein0sx1k.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\97kp90co2m-{0}-v0zj4ognzu-v0zj4ognzu.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\ed5dpbkcmp-{0}-37tfw0ft22-37tfw0ft22.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\4w2hlgqons-{0}-hrwsygsryq-hrwsygsryq.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\1gnwh3bc5f-{0}-pk9g2wxc8p-pk9g2wxc8p.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\1hju2kjsnm-{0}-ft3s53vfgj-ft3s53vfgj.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\j3osi24043-{0}-6cfz1n2cew-6cfz1n2cew.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\px5jz4gn2k-{0}-6pdc2jztkx-6pdc2jztkx.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\qmfc455bqd-{0}-493y06b0oq-493y06b0oq.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\93uy6jgo2d-{0}-iovd86k7lj-iovd86k7lj.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\2x6q1594r6-{0}-vr1egmr9el-vr1egmr9el.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\ung2txg4o1-{0}-kbrnm935zg-kbrnm935zg.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\u3jewzt1vl-{0}-jj8uyg4cgr-jj8uyg4cgr.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\79xbwypaqj-{0}-y7v9cxd14o-y7v9cxd14o.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\tkhsoyr1gw-{0}-notf2xhcfb-notf2xhcfb.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\k7ns0ox31a-{0}-h1s4sie4z3-h1s4sie4z3.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\doe31mxljt-{0}-63fj8s7r0e-63fj8s7r0e.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\m4sfs0go6y-{0}-0j3bgjxly4-0j3bgjxly4.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\3ej8wiykds-{0}-abdmv1u4y3-abdmv1u4y3.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\am1eegk6vr-{0}-b9228eflpl-b9228eflpl.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\2sew0bael6-{0}-2tj1sjhksk-2tj1sjhksk.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\zbvq0bdneu-{0}-q1j99dsq8o-q1j99dsq8o.gz
Processing compressed asset: D:\Projects\Game\src\GmRelay.Web\obj\Debug\net10.0\compressed\4csigzgafp-{0}-hi2qlyauic-hi2qlyauic.gz
_BuildCopyStaticWebAssetsPreserveNewest:
Целевой объект "_BuildCopyStaticWebAssetsPreserveNewest" пропускается из-за отсутствия выходных файлов.
_CopyOutOfDateSourceItemsToOutputDirectory:
Целевой объект "_CopyOutOfDateSourceItemsToOutputDirectory" пропускается, так как все выходные файлы актуальны по отношению к входным.
GenerateBuildDependencyFile:
Целевой объект "GenerateBuildDependencyFile" пропускается, так как все выходные файлы актуальны по отношению к входным.
GenerateBuildRuntimeConfigurationFiles:
Целевой объект "GenerateBuildRuntimeConfigurationFiles" пропускается, так как все выходные файлы актуальны по отношению к входным.
CopyFilesToOutputDirectory:
GmRelay.Web -> D:\Projects\Game\src\GmRelay.Web\bin\Debug\net10.0\GmRelay.Web.dll
5>Сборка проекта "D:\Projects\Game\src\GmRelay.Web\GmRelay.Web.csproj" завершена (целевые объекты по умолчанию).
1>GenerateTargetFrameworkMonikerAttribute:
Целевой объект "GenerateTargetFrameworkMonikerAttribute" пропускается, так как все выходные файлы актуальны по отношению к входным.
CoreGenerateAssemblyInfo:
Целевой объект "CoreGenerateAssemblyInfo" пропускается, так как все выходные файлы актуальны по отношению к входным.
_GenerateSourceLinkFile:
Source Link пуст, файл "obj\Debug\net10.0\GmRelay.Bot.Tests.sourcelink.json" не существует.
CoreCompile:
Целевой объект "CoreCompile" пропускается, так как все выходные файлы актуальны по отношению к входным.
_CopyOutOfDateSourceItemsToOutputDirectory:
Частичное создание целевого объекта "_CopyOutOfDateSourceItemsToOutputDirectory", так как некоторые выходные файлы устарели по отношению к входным.
Копирование файла из "D:\Projects\Game\tests\GmRelay.Bot.Tests\obj\Debug\net10.0\MvcTestingAppManifest.json" в "D:\Projects\Game\tests\GmRelay.Bot.Tests\bin\Debug\net10.0\MvcTestingAppManifest.json".
GenerateBuildDependencyFile:
Целевой объект "GenerateBuildDependencyFile" пропускается, так как все выходные файлы актуальны по отношению к входным.
GenerateBuildRuntimeConfigurationFiles:
Целевой объект "GenerateBuildRuntimeConfigurationFiles" пропускается, так как все выходные файлы актуальны по отношению к входным.
CopyFilesToOutputDirectory:
GmRelay.Bot.Tests -> D:\Projects\Game\tests\GmRelay.Bot.Tests\bin\Debug\net10.0\GmRelay.Bot.Tests.dll
_MvcCopyDependencyFiles:
Копирование файла из "D:\Projects\Game\src\GmRelay.Bot\bin\Debug\net10.0\GmRelay.Bot.deps.json" в "D:\Projects\Game\tests\GmRelay.Bot.Tests\bin\Debug\net10.0\GmRelay.Bot.deps.json".
Копирование файла из "D:\Projects\Game\src\GmRelay.DiscordBot\bin\Debug\net10.0\GmRelay.DiscordBot.deps.json" в "D:\Projects\Game\tests\GmRelay.Bot.Tests\bin\Debug\net10.0\GmRelay.DiscordBot.deps.json".
Копирование файла из "D:\Projects\Game\src\GmRelay.ServiceDefaults\bin\Debug\net10.0\GmRelay.ServiceDefaults.deps.json" в "D:\Projects\Game\tests\GmRelay.Bot.Tests\bin\Debug\net10.0\GmRelay.ServiceDefaults.deps.json".
Копирование файла из "D:\Projects\Game\src\GmRelay.Shared\bin\Debug\net10.0\GmRelay.Shared.deps.json" в "D:\Projects\Game\tests\GmRelay.Bot.Tests\bin\Debug\net10.0\GmRelay.Shared.deps.json".
Копирование файла из "D:\Projects\Game\src\GmRelay.Web\bin\Debug\net10.0\GmRelay.Web.deps.json" в "D:\Projects\Game\tests\GmRelay.Bot.Tests\bin\Debug\net10.0\GmRelay.Web.deps.json".
1>Сборка проекта "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" завершена (целевые объекты по умолчанию).
1>BuildProject:
Сборка выполнена.
Тестовый запуск для D:\Projects\Game\tests\GmRelay.Bot.Tests\bin\Debug\net10.0\GmRelay.Bot.Tests.dll (.NETCoreApp,Version=v10.0)
Общее количество тестовых файлов (1), соответствующих указанному шаблону.
[xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v3.1.4+50e68bbb8b (64-bit .NET 10.0.5)
[xUnit.net 00:00:00.10] Discovering: GmRelay.Bot.Tests
[xUnit.net 00:00:00.19] Discovered: GmRelay.Bot.Tests
[xUnit.net 00:00:00.22] Starting: GmRelay.Bot.Tests
Пройден GmRelay.Bot.Tests.Features.Sessions.CreateSession.SessionCapacityRulesTests.DecideJoinStatus_ShouldReturnActive_WhenUnlimitedSeats [5 ms]
Пройден GmRelay.Bot.Tests.Features.Sessions.CreateSession.SessionCapacityRulesTests.ShouldPromoteAfterParticipantLeaves_ShouldOnlyPromoteAfterActiveParticipantLeaves [< 1 ms]
Пройден GmRelay.Bot.Tests.Features.Sessions.CreateSession.SessionCapacityRulesTests.CanPromoteWaitlistedPlayer_ShouldRequireWaitlistAndFreeSeat [< 1 ms]
Пройден GmRelay.Bot.Tests.Features.Sessions.CreateSession.SessionCapacityRulesTests.DecideJoinStatus_ShouldReturnActive_WhenZeroActiveAndPositiveMax [< 1 ms]
Пройден GmRelay.Bot.Tests.Features.Sessions.CreateSession.SessionCapacityRulesTests.DecideJoinStatus_ShouldReturnWaitlisted_WhenSessionReachedLimit [< 1 ms]
Пройден GmRelay.Bot.Tests.Features.Sessions.CreateSession.SessionCapacityRulesTests.DecideJoinStatus_ShouldReturnWaitlisted_WhenOverCapacity [< 1 ms]
Пройден GmRelay.Bot.Tests.Features.Sessions.CreateSession.SessionCapacityRulesTests.DecideJoinStatus_ShouldReturnActive_WhenSessionHasFreeSeats [< 1 ms]
Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.ToDisplayName_ShouldReturnExpectedName(system: Other, expected: "Другое") [12 ms]
Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.ToDisplayName_ShouldReturnExpectedName(system: Pathfinder2e, expected: "Pathfinder 2e") [< 1 ms]
Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.ToDisplayName_ShouldReturnExpectedName(system: Shadowdark, expected: "Shadowdark") [< 1 ms]
Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.ToDisplayName_ShouldReturnExpectedName(system: Dnd5e, expected: "D&D 5e") [< 1 ms]
Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.ToDisplayName_ShouldReturnExpectedName(system: 999, expected: "Другое") [< 1 ms]
Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.TryParseFuzzy_ShouldReturnOtherForUnmatchedCyrillicInput(input: "днд") [4 ms]
Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.TryParseFuzzy_ShouldReturnOtherForUnmatchedCyrillicInput(input: "колова") [< 1 ms]
Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.TryParseFuzzy_ShouldMapInputToExpectedSystem(input: "D&D 5e", expected: Dnd5e) [< 1 ms]
Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.TryParseFuzzy_ShouldMapInputToExpectedSystem(input: "shadow", expected: Shadowdark) [< 1 ms]
Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.TryParseFuzzy_ShouldMapInputToExpectedSystem(input: "dark", expected: Shadowdark) [< 1 ms]
Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.TryParseFuzzy_ShouldMapInputToExpectedSystem(input: "dnd5e", expected: Dnd5e) [< 1 ms]
[xUnit.net 00:00:00.31] Finished: GmRelay.Bot.Tests
Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.TryParseFuzzy_ShouldMapInputToExpectedSystem(input: "call of cthulhu", expected: CallOfCthulhu7e) [< 1 ms]
Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.TryParseFuzzy_ShouldMapInputToExpectedSystem(input: "Dnd5e", expected: Dnd5e) [< 1 ms]
Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.TryParseFuzzy_ShouldMapInputToExpectedSystem(input: "unknown xyz", expected: Other) [< 1 ms]
Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.TryParseFuzzy_ShouldMapInputToExpectedSystem(input: "D&D", expected: Dnd5e) [< 1 ms]
Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.TryParseFuzzy_ShouldMapInputToExpectedSystem(input: " dnd5e ", expected: Dnd5e) [< 1 ms]
Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.TryParseFuzzy_ShouldMapInputToExpectedSystem(input: "pathfinder", expected: Pathfinder2e) [< 1 ms]
Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.TryParseFuzzy_ShouldReturnNullForNullInput [< 1 ms]
Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.TryParseFuzzy_ShouldReturnNullForEmptyOrWhitespaceInput(input: "") [< 1 ms]
Пройден GmRelay.Bot.Tests.Domain.GameSystemTests.TryParseFuzzy_ShouldReturnNullForEmptyOrWhitespaceInput(input: " ") [< 1 ms]
Тестовый запуск выполнен.
Всего тестов: 27
Пройдено: 27
Общее время: 0,8554 Секунды
1>Сборка проекта "D:\Projects\Game\tests\GmRelay.Bot.Tests\GmRelay.Bot.Tests.csproj" завершена (целевые объекты VSTest).
Сборка успешно завершена.
Предупреждений: 0
Ошибок: 0
Прошло времени 00:00:04.60