Unchanged modules relinked every single build using VS 15.3

I’m noticing an odd bug since I upgraded to VS 15.3.

If I modify a source file in my game project or the engine, the module containing it is then always linked again.
To test, I modified some random line in a random file (AtmosphereTextures.cpp) and now UE4Editor-Renderer.dll is linked every single time I compile a change in my game project.

I am seeing the same issue after updating to 15.3.

I am using 4.15, so it affects not just 4.17 but all engine versions.

I tested this with the master branch aswell, it is not fixed yet.

Getting the same issue here as well!

Engine Version 4.17.1

Visual Studio Version 15.3.3

Hello,

Would it be possible to get a build log from Visual Studio when you see this happening? I tried to reproduce this in Visual Studio 15.3.3 using your example, but did not see UE4Editor-Renderer.dll referenced any time other than when I made a change to the AtmosphereTextures.cpp file.

This is a build log I got by just clicking build, without making any changes since last time: https://pastebin.com/80XatEZd
This is after adding a space in some random engine file: https://pastebin.com/p2HB9sfA
And this is after clicking build again without further changes: https://pastebin.com/uSynFBcD

Now these logs don’t seem to be very useful, is there maybe an UBT logfile or a debug mode or anything to see why it wants to link them again?

Yeah, thats the same what I see in the logs too.

There does seem to be something odd happening for you, but I cannot reproduce it myself. I can see the Creating library... lines in my build, but only for modules that I have modified since the previous build. If I finish a build, then immediately start another one without making any changes, then the Creating library... lines do not appear for me.

Do you happen to also see this in the most recent version of Visual Studio 2015, or does it only happen for you in VS 2017? Could I please take a look at your project’s Build.cs file?

For me the issue never existed before updating to VS 15.3.

I attached my build.cs file. Had to rename it to .txt for being able to attach it here.
link text

Hey ,

Here is my build log and my build.cs file:

Build Log with no changes

Projects Build.cs

As the title of the file indicates the build log is with no changes just hitting build. And this only seemed to start happening with VS17.3

This never happened using VS 2015 or 2017 before the 15.3 update.
Here are the build files: https://pastebin.com/e3ZBHT9V

VS 15.3.4 update doesn’t fix this issue.

VS 15.3.5 update doesn’t fix this issue.

This is still an issue with 4.18 preview, even with the launcher version.

I have the same issue. It is super annoying and time wasting.

UE 4.17.1
VS 15.3.5

Can confirm, Every time trying to incremental build it relink bunch of modules. It’s getting annoying, as start up times big even without this issue.

4.17.2 doesn’t fix this issue.

The issue appears to be that ubt doesn’t correctly determine the last execution time of a link action when using VS 15.3:

https://i.imgur.com/Yar11DH.png

And this seems to be caused by VS 15.3 not modifying the .suppressed.lib files when relinking a module after changes.

The problem can be fixed by killing this if:

https://i.imgur.com/Iv4WuRf.png

https://i.imgur.com/qg6ZQgS.png

Basic testing shows that it works properly, but I don’t know enough about the internals of ubt / the linking process to say whether it’s the correct solution.