[UBT Bug] No longer able to compile plugins in standalone since 5.3

发布于:2024-12-07 ⋅ 阅读:(95) ⋅ 点赞:(0)

from :[UBT Bug] No longer able to compile plugins in standalone since 5.3 - Pipeline & Plugins - Epic Developer Community Forums

Hacking around I managed to both a) identify the problem plugins, and b) make the build tool immune to this crash.
我设法识别了问题插件,并使构建工具免受此崩溃的影响。

  1. Open C:\Program Files\Epic Games\UE_5.4\Engine\Source\Programs\UnrealBuildTool\UnrealBuildTool.sln in Visual Studio
    打开 Visual Studio 中的 C:\Program Files\Epic Games\UE_5.4\Engine\Source\Programs\UnrealBuildTool\UnrealBuildTool.sln
  2. Make Configuration/ModuleRules.cs writable
    设置 Configuration/ModuleRules.cs 可写
  3. Find the IsValidForTarget method
    找到 IsValidForTarget 方法
  4. Replace the first line of code with the code below.
    将第一行代码替换为以下代码。
  5. Compile with Build → Build Solution (make sure it completes ok and says it’s updated the C:\Program Files\Epic Games\UE_5.4\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.dll file.
    编译时使用构建 → 构建解决方案(确保它完成并显示已更新 C:\Program Files\Epic Games\UE_5.4\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.dll 文件)。
  6. Attempt to build your project/plugin again
    尝试再次构建您的项目/插件
  7. Look in the “C:\Users_yourusername_\AppData\Roaming\Unreal Engine\AutomationTool\Logs\C+Program+Files+Epic+Games+UE_5.4” or similar folder for the .txt file with the long name.
    查看“C:\Users_yourusername_\AppData\Roaming\Unreal Engine\AutomationTool\Logs\C+Program+Files+Epic+Games+UE_5.4”或类似文件夹中的长名.txt 文件。
  8. In it search for “Does not support” and see if the new code has triggered. The start of the line will tell you the plugin.
    在搜索“不支持”并查看新代码是否已触发。行的开头会告诉你插件。

 
IEnumerable<TargetType> supportedTargetTypes = new TargetType[] { }; try { supportedTargetTypes = moduleType .GetCustomAttributes<SupportedTargetTypesAttribute>().SelectMany(x => x.TargetTypes).Distinct(); } catch { string module_name = (moduleType != null) ? moduleType.Name : "<null>"; invalidReason = $"TargetType '{targetRules.Type}' : Failed to get SupportedTargetTypesAttribute from '{module_name}'"; return false; }