fdefelici / vs-funreal

Visual Studio extension to smooth the workflow of Unreal Engine C++ developers
MIT License
27 stars 7 forks source link

Failed to detect Unreal Engine version for custom engine build #12

Closed MasterMann closed 1 year ago

MasterMann commented 1 year ago

Same problem as #1 , but this time due to engine version in .uproject files being set to {<UUID>} format. Manually editing the version back to standard allows FUnreal to work, but breaks integration with UE5 (project generation, etc.).

Example: зображення

fdefelici commented 1 year ago

Hi @MasterMann thanks for reporting the issue.

Which version 5.X.X are you using? I've tested with 5.0.3 and 5.1.0

MasterMann commented 1 year ago

Custom build of 5.1.1 (from official Epic GitHub), with project association to that build (via Generate Project Files in explorer -> Select Unreal Engine version).

The pre-built UE5 verions from Epic always have a proper version number in that field.

fdefelici commented 1 year ago

I see...

I just found this reference on the web related to the "EngineAssociation" possible values: https://github.com/ibbles/LearningUnrealEngine/blob/master/Engine%20association%20and%20versions.md

I've to understand if could be possible match UUID with the Engine Version on Windows. If in the meantime you have some idea, I'm all ears :)

create-issue-branch[bot] commented 1 year ago

Branch issue-12-Failed_to_detect_Unreal_Engine_version_for_custom_engine_build created!

MasterMann commented 1 year ago

@fdefelici found the full documentation about matching custom-built UE versions:

When a foreign project is created from a launcher (binary) build, the EngineAssociation field in its .uproject file is set to the version number of the launcher engine that was used to create it. In case you created the project from a source-built version of the Unreal Editor it will put in the Globally Unique Identifier (GUID) of that editor. This GUID is automatically generated and saved on your computer the first time you launch your source-built editor. The locations where these are stored on different operating systems are:

Source: https://docs.unrealengine.com/5.1/en-US/managing-game-code-in-unreal-engine/

fdefelici commented 1 year ago

Hi @MasterMann, yes I confirm that is the expected behaviour. I was testing around that specification and basically it's a dead end. For custom build it seems that GUID is paired with absolute path of engine installation root directory (instead FUnreal is parsing uproject file to gather the version).

Anyhow, maybe I found a another way to detect UE version that should work for all engine builds (epic official and custom) by accessing this file [UE_ROOT]/Engine/Build/Build.version.

Currently, I'm trying to make a custom UE build to verify if this file is "reliable".

Meanwhile could you check the presence of this file on your custom build and verify that it contains the original UE version information?

MasterMann commented 1 year ago

Yes, I have the file in that place, here are the contents:

{
    "MajorVersion": 5,
    "MinorVersion": 1,
    "PatchVersion": 1,
    "Changelist": 0,
    "CompatibleChangelist": 23058290,
    "IsLicenseeVersion": 0,
    "IsPromotedBuild": 0,
    "BranchName": "++UE5+Release-5.1"
}
fdefelici commented 1 year ago

Ok perfect. Still waiting for my custom build to finish, but with your evidence I can start implement version detection from it.

fdefelici commented 1 year ago

@MasterMann here a build with the new implementation FUnreal.vsix.zip

If you want to test it before final release you can follow this steps:

MasterMann commented 1 year ago

@fdefelici thanks a lot, will try soon and let you know.

MasterMann commented 1 year ago

Seems like the plugin now detects the custom build and functionality works fine (tested adding a new class in a project plugin, and deleting .h/cpp files after). I'll close the issue and re-open if I find any bugs.

[2023-04-10 04:35:36][INFO] UE Project descriptor found at C:\Users\<redacted>\Documents\Unreal Projects\<redacted>\<redacted>.uproject
[2023-04-10 04:35:36][INFO] UE Version: 5.1.1
[2023-04-10 04:35:36][INFO] UE Path: C:\UnrealEngine\UE_5.1.1\Engine
[2023-04-10 04:35:36][INFO] UBT Path: C:\UnrealEngine\UE_5.1.1\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.exe
[2023-04-10 04:35:36][INFO] FUnreal setup completed.
[2023-04-10 04:35:36][INFO] Scanning <redacted> project ...
[2023-04-10 04:35:36][INFO] <redacted> project scan completed. Found 5 plugins and 18 modules.
fdefelici commented 1 year ago

OK thank you for your testing.

I just keep open the issue, just to make it close by pull request event for release_v0.0.8.

I'll let you know when ready, so you can unistall FUnreal test version and catch up with the latest from the Marketplace.

fdefelici commented 1 year ago

@MasterMann v0.0.8 is now live on marketplace