Difference between directly open uproject and open it by launcher

Hi guys,
Here i met a problem is that it will be fine if i open .uproject directlyor using UE4Editor.exe “[ProjectPath][ProjectName].uproject” command to open project.
But when i want to open project by Launcher or open UE4 first then choose project to open, UE4 will ask me to rebuild or recompile project.
So i’m wondering what’s the difference between these two ways. I use some plugins in my project and it seems the point, but i want to know the something more principle.

When you open a .uproject directly, it opens it with the associated engine version. Whereas, when you open the project from UE4, you open it with the default engine version in the Editor. To check/reset the associated engine version of the .uproject file, right click and select “Switch Unreal Engine Version”.