如果是從源代碼編譯出來的UE4, 明明代碼完全一樣, 不同機器編譯出來的dll卻無法兼容, 這對於多分支開發非常不方便.
在老版本里有個通過版本號判斷的邏輯, 新版本改沒了. 分析UE4源碼後發現目前是通過BulidId來判斷dll跟引擎是不是兼容的. 那BuildId是哪裏來的呢?
其實像發佈的UE4版本是通過"-Formal"參數來生成固定的BuildId的, 不過我們也可以直接修改Engine/Build/Build.version來生成固定的BuildId:
改完後如果代碼一樣, 不同機器編譯出來的引擎也能夠打開同個工程的dll 了
參考資料
https://udn.unrealengine.com/questions/506626/view.html
https://udn.unrealengine.com/questions/475415/view.html