If only the static libraries appear to be rebuilt but the app that consumes them is not then I think that what you are seeing is the Visual Studio build process providing status information about the static library projects even though they are not actually being rebuilt.
First, set the Visual Studio IDE Tools->Options->Projects->Projects and Solutions->Build and Run as follows -
In my test I created two solutions each of which consumed the same two static library projects. Each solution was built and then closed. The I opened each solution and used F5. For the first solution this is what the Build Output showed -
Build started...
1>------ Build started: Project: StaticA, Configuration: Debug Win32 ------
2>------ Build started: Project: StaticB, Configuration: Debug Win32 ------
1>Build started 9/1/2021 4:43:01 PM.
2>Build started 9/1/2021 4:43:01 PM.
2>Target InitializeBuildStatus:
2> Creating "Debug\StaticB.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
2>Target ClCompile:
2> All outputs are up-to-date.
2> All outputs are up-to-date.
1>Target InitializeBuildStatus:
1> Creating "Debug\StaticA.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
1>Target ClCompile:
1> All outputs are up-to-date.
1> All outputs are up-to-date.
1>Target Lib:
1> All outputs are up-to-date.
1> StaticA.vcxproj -> C:\Users\RLWA32\source\repos\Rlwa32\StaticA\StaticA\Debug\StaticA.lib
1>Target FinalizeBuildStatus:
1> Deleting file "Debug\StaticA.tlog\unsuccessfulbuild".
1> Touching "Debug\StaticA.tlog\StaticA.lastbuildstate".
1>
1>Build succeeded.
1> 0 Warning(s)
1> 0 Error(s)
1>
1>Time Elapsed 00:00:00.08
2>Target Lib:
2> All outputs are up-to-date.
2> StaticB.vcxproj -> C:\Users\RLWA32\source\repos\Rlwa32\StaticB\StaticB\Debug\StaticB.lib
2>Target FinalizeBuildStatus:
2> Deleting file "Debug\StaticB.tlog\unsuccessfulbuild".
2> Touching "Debug\StaticB.tlog\StaticB.lastbuildstate".
2>
2>Build succeeded.
2> 0 Warning(s)
2> 0 Error(s)
2>
2>Time Elapsed 00:00:00.07
========== Build: 2 succeeded, 0 failed, 1 up-to-date, 0 skipped ==========
Note that neither static library was actually rebuilt and the application that consumed them shows as up-to-date. I closed that solution, opened the second solution and pressed F5 to run. Build output was
Build started...
1>------ Build started: Project: StaticA, Configuration: Debug Win32 ------
1>Build started 9/1/2021 4:44:07 PM.
1>Target InitializeBuildStatus:
1> Creating "Debug\StaticA.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
1>Target ClCompile:
1> All outputs are up-to-date.
1> All outputs are up-to-date.
1>Target Lib:
1> All outputs are up-to-date.
1> StaticA.vcxproj -> C:\Users\RLWA32\source\repos\Rlwa32\StaticA\StaticA\Debug\StaticA.lib
1>Target FinalizeBuildStatus:
1> Deleting file "Debug\StaticA.tlog\unsuccessfulbuild".
1> Touching "Debug\StaticA.tlog\StaticA.lastbuildstate".
1>
1>Build succeeded.
1> 0 Warning(s)
1> 0 Error(s)
1>
1>Time Elapsed 00:00:00.03
2>------ Build started: Project: StaticB, Configuration: Debug Win32 ------
2>Build started 9/1/2021 4:44:07 PM.
2>Target InitializeBuildStatus:
2> Creating "Debug\StaticB.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
2>Target ClCompile:
2> All outputs are up-to-date.
2> All outputs are up-to-date.
2>Target Lib:
2> All outputs are up-to-date.
2> StaticB.vcxproj -> C:\Users\RLWA32\source\repos\Rlwa32\StaticB\StaticB\Debug\StaticB.lib
2>Target FinalizeBuildStatus:
2> Deleting file "Debug\StaticB.tlog\unsuccessfulbuild".
2> Touching "Debug\StaticB.tlog\StaticB.lastbuildstate".
2>
2>Build succeeded.
2> 0 Warning(s)
2> 0 Error(s)
2>
2>Time Elapsed 00:00:00.04
========== Build: 2 succeeded, 0 failed, 1 up-to-date, 0 skipped ==========
Again, the static libraries were not actually rebuilt and the consuming app was shown as up-to-date.
If you can reproduce these results then the static libraries are not rebuilt and Visual Studio's Minimal build progress reporting was misleading you.