FYI, I’ve just hit this same problem and I think I know how to solve it, although I haven’t seen in a project created with Projucer, but rather in a older VS 2013 project when opened for the first time in VS2015 for upgrade.
The project had its “Platform toolset” set to “Visual Studio 2013 - Windows XP (v120_xp)”
Upon first opening in VS 2015, the import procedure prompted me to update that setting to the current toolset, which i did.
After that, the property page for the project looked like this
As you can see, it correctly detected that I wished to have XP support, and it updated the toolset to “Visual Studio 2015 - Windows XP (v140_xp)”
Since that moment, I have been unable to change and apply any other setting, getting the “Value cannot be null” error message above.
After some hours of struggling and investigating, turns out that the cause are those two fields that you see at the top of that property window, i.e. “Target Platform” and “Target Platform Version”. Those two are fields that are added when you switch to a VS2015 toolset (they weren’t there before), and it turns out that the version field cannot be empty, and that one is the one that triggers the error.
Ok, so what value should be written there? I think it should be set to “8.1” for Windows desktop executables (even on Windows 10), and I have checked that in two ways:
-
I have created a new pristine empty project with Visual Studio 2015 on Windows 10, and I got a nice 8.1 for that field.
-
I updated a project that DIDN’T have XP support required in its toolset, and in that case VS 2015 updated the project by changing the toolset to 2015 and setting a 8.1 value for the Target Platform Toolset Version.
So, I have set it to 8.1 manually for all build configurations in my projects (see below) and it worked flawlessly, i.e. after that I have been able to change and apply all settings as needed.
Bonus points: if, at that point, you set the toolset to 2015 without XP support (see image below), it seems that Visual Studio recognizes that combination and puts a (unchangeable) “Windows” value for the “Target Platform”
I’ll leave it to the JUCE team to figure out how that setting translates inside the .vxcproj file, but I think that if Projucer adds it, this will be solved.