NVCC not linking after code changes in cu header

I have a main.cu and kernels.cu file, where main.cu is launching __global__ kernels contained in kernels.cu.
main.cu includes kernels.cu.
The __global__ functions are either static or templated.
I have an issue with Visual Studio + nvcc where changes in kernels.cu will result in compilation of kernels.obj, however these changes are not present within the compiled application. Only when main.cu is recompiled either by rebuilding the solution or making changes to main.cu I can observe changes from kernels.cu in the compiled application.
Is this a misconfiguration of the Visual Studio solution? It is created with cmake.