Hi, thanks for posting.
The grid nodes have an awareness of versions of Visual Studio. Essentially, the client tells the node which version of VS it's using, and the grid node will do its best to match that version. Where the version used on the client isn't available on the grid node, it will first look for a later version of VS, then an earlier one. Best practice is to make sure that whatever version of Visual Studio is being used on the client is also installed on the node.
We've tested the above case fairly extensively, but what we haven't tested extensively is how well this works with multiple versions of the MS Build Tools installed and no Visual Studio present on the node.
In theory, the MS Build Tools should publish their location via the same API we use to establish the install paths of VS2017/2019. However, we haven't found this API to be particularly reliable, so it may be required to specify the path using environment variables as such:
NCrunchVSInstallPath.VS2017 = path to 'C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools' or equivalent
NCrunchVSInstallPath.VS2019 = path to 'C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools' or equivalent
Make sure you set the above variables at system level so that the apply for all user accounts. You'll probably need to reboot for it to take full effect.
The error you're receiving can still happen even if the node is using the correct major version of VS/BuildTools. This is because under VS2017 and VS2019 there are many different minor versions of the IDE/BuildTools and these often have compiler updates. We usually find that unless our entire grid is kept carefully synchronised with VS updates then this warning tends to appear.