お世話になります。ビルドシステムの不調について伺います。
RunUAT.batでBuildCookRunを使ってWindows版のパッケージを作っています。
継続してパッケージできている環境で、
エンジンもゲーム、プラグインとも自分たちではプログラムの更新は何もしていないにも関わらず、
日々パッケージ作成を繰り返していると、唐突に
EpicGames.HordeのWorkspace.csで「error CS0246: 型または名前空間の名前 ‘ChannelWithRefCount<>’ が見つかりませんでした」というエラーが出てパッケージコマンドが失敗するように、たびたびなります。
この状態になると、繰り返しコマンドを実行しても同じエラーになります。
ただプログラムをビルドし直し(クリーンやリビルドせずともただソリューションビルドするだけ)で直ったり、
それでダメでもエラーが出ているファイルのタイムスタンプを変えてビルドし直すだけで解消されるようです。
以前のプロジェクト(5.0 ~ 5.2を3,4年、5.4で半年ほど運用)は、このような問題はなかったです。
(Horde自体現在の状態ではなかったので当然かもしれませんが)
ビルドして直すことはできるようなので、致命的とまではいってないのですが、
この一か月で週1回程度のペースで作業フローが止まるというそこそこの頻度なので、
できれば根本的に解消させてたいと思います。
しかし単にRunUAT.batを単体マシンで実行しているだけで、分散ビルドやHordeシステムは利用しておらず、
そのあたりの問題に心当たりや知識もなく、関連ワードで調査しても同様な事例は見当たらず、お手上げ状態です。
製品プロジェクトですら再現条件がわからず唐突にその状態になる有様で、
とても再現できるプロジェクトを提供できない状態で申し訳ないですが、この程度の情報から、
そもそも何故(何をきっかけに)発生するのか、
恒久的に解消する方法はあるか、何かわかりますでしょうか?
■使っているパッケージコマンドはおおよそ次のようなものです。
(エディタ中のProject Launcherでパッケージを作った時のログを参考に作成)
“<エンジンフォルダ>\Engine\Build\BatchFiles\RunUAT.bat” BuildCookRun -project=<リポジトリフォルダ>/<プロジェクト名>/<プロジェクト名>.uproject -noP4 -clientconfig=Test -serverconfig=Test -nocompileeditor -unrealexe=<エンジンフォルダ>\Engine\Binaries\Win64\UnrealEditor-Cmd.exe -utf8output -platform=Win64 -build -cook -map=<テスト用レベル> -CookCultures=en+ja -unversionedcookedcontent -encryptinifiles -ddc=DerivedDataBackendGraph -pak -iostore -prereqs -stage -package -archive -compressed -archivedirectory=<パッケージ出力先>
問題が出る環境で繰り返し正常にパッケージが作れています。
■発生するエラー
[dotnet build] <エンジンフォルダ>\Engine\Source\Programs\Shared\EpicGames.Horde\Storage\Workspace.cs(1843,97): error CS0246: 型または名前空間の名前 ‘ChannelWithRefCount<>’ が見つかりませんでした (using ディレクティブまたはアセンブリ参照が指定されていることを確認してください) [<エンジンフォルダ>\Engine\Source\Programs\Shared\EpicGames.Horde\EpicGames.Horde.csproj]
[dotnet build] <エンジンフォルダ>\Engine\Source\Programs\Shared\EpicGames.Horde\Storage\Workspace.cs(2087,59): error CS0246: 型または名前空間の名前 ‘ChannelWithRefCount<>’ が見つかりませんでした (using ディレクティブまたはアセンブリ参照が指定されていることを確認してください) [<エンジンフォルダ>\Engine\Source\Programs\Shared\EpicGames.Horde\EpicGames.Horde.csproj]
[dotnet build] <エンジンフォルダ>\Engine\Source\Programs\Shared\EpicGames.MsBuild\CsProjBuilder.cs(111,88): error CS1061: ‘CsProjBuildHook’ に ‘ValidBuildRecords’ の定義が含まれておらず、型 ‘CsProjBuildHook’ の最初の引数を受け付けるアクセス可能な拡張メソッド ‘ValidBuildRecords’ が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足していないことを確認してください [<エンジンフォルダ>\Engine\Source\Programs\Shared\EpicGames.MsBuild\EpicGames.MsBuild.csproj]
【実行環境】
VisualStudio Professional 2022 17.14.9
WindowsSDK 10.0.22621.0
C++(ATL,MFC,ビルドツール)は、x64の14.38が入っています
マシンには.NETは次がインストールされていました
>dotnet --list-sdks
5.0.416 [C:\Program Files\dotnet\sdk]
6.0.421 [C:\Program Files\dotnet\sdk]
8.0.412 [C:\Program Files\dotnet\sdk]
9.0.302 [C:\Program Files\dotnet\sdk]
RunUAT.batのログには次のようにあり、エンジンフォルダにある8.0.300が使われているところもあります
Running: <エンジンフォルダ>\Engine\Binaries\ThirdParty\DotNet\8.0.300\win-x64\dotnet.exe build “<エンジンフォルダ>\Engine\Source\Programs\Shared\EpicGames.ScriptBuild” -nologo -v:quiet “/p:EngineDir=<エンジンフォルダ>\Engine” “/p:EnginePath=<エンジンフォルダ>\Engine” “/p:EpicGamesMsBuild=true” “/p:CustomAfterMicrosoftCommonProps=<エンジンフォルダ>\Engine\Source\Programs\Shared\UnrealEngine.CSharp.targets” “/p:NoWarn=$(NoWarn)%3BMSB3026%3BNETSDK1206” "/p:Configuration=Development"
以上、よろしくお願いします。
[Attachment Removed]