パッケージビルド時に唐突にEpicGames.HordeのWorkspace.csがエラーになり止まる

お世話になります。ビルドシステムの不調について伺います。​

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]

お世話になっております。

おそらくHorde関係がなくて、 MSBuild-Serverで同じDotnetのバージョンの利用ができていないかと思っています。

確認のため、DOTNET_CLI_USE_MSBUILD_SERVERを0にしてから同じコマンドを呼んだら変わりますか?

https://learn.microsoft.com/ja\-jp/visualstudio/msbuild/msbuild\-server?view\=vs\-2022

お​手数ですが、よろしくお願いします。

[Attachment Removed]

アドバイスありがとうございます。

この症状は唐突に発生し、プロジェクトで何等かコードの変更が発生してビルドがリクエストされると、修正されてしまい発生しなくなります。

現状、質問後のスタッフの作業によってまた発生していない状態になっており、教えていただいた方法での変化を確認できない状態です。

この一か月の状況から1,2週間のうちには再発が予想されますので、そのときに実験させていただきたいです。

すみませんが、このチケットはしばらく待機とさせてください。

[Attachment Removed]

お世話になっております。

承知しました。こちらのチケットは一旦クローズさせて、確認できたらいつでも再オープンしてください。

引き続きよろしくお願いします。

[Attachment Removed]

症状が発生しましたので、DOTNET_CLI_USE_MSBUILD_SERVERを利用してみました。

やはりとくに心当たりの変更があるわけでもない、パッケージビルドの作り直しを繰り返している中で唐突に発生しました。

ある日に問題無くパッケージできたところで、翌日までにいくつかだけアニメーションアセットの更新があっただけの違いでパッケージするとこのエラーが発生していた、という感じです。

DOTNET_CLI_USE_MSBUILD_SERVERを0にしても1にしても、そこからパッケージビルドをやり直しするだけでは、ビルドエラーの状況は変わらなかったです。

この状態で他に試した方が良さそうなものがなければ、DOTNET_CLI_USE_MSBUILD_SERVERを0にした状態でビルドし直しをかけて正常にしてみます。そして、その状態のまま運用したら、エラーが再発しないかをみてみようと思います。

(やはり再現の確認には1~3週間程度の運転が必要かもしれません)

他に何か状況変化しそうなプランがあればアドバイスをお願いします。

以上、よろしくお願いします。

[Attachment Removed]

申し訳ございません。現場でサーバービルドを進めなければならない事情が出まして、エラー発生状態の保全が限界になりました。

昨日、提案したDOTNET_CLI_USE_MSBUILD_SERVERを0にした状態でビルドし直しをかけて正常にしたのち、様子見しています。

状況が変化したらまた連絡しますのでまたしばらくこちら放置で構いませんが、もし他に試すプランがあれば返答しておいていただけると助かります。

以上、よろしくお願いします。

[Attachment Removed]

今のところをDOTNET_CLI_USE_MSBUILD_SERVERの利用の試しがいいかと思います。

変更があれば教えてください。

お手数ですが、よろしくお願いします。

[Attachment Removed]