I was planning to create an installator that will do everything required. However, months are passing by and nothing is happening, so I decided to just write up what I did manually.
As some of you might have noticed, I have already published a .NET Micro Framework changes to make it running in Visual Studio 2017 on GitHub in June 2017 - see the VS15.3 branch. So you can either compile your own installer following these steps:
That's all nice and great, but most of my hardware runs 4.3. Unfortunately, the support of older .NET Micro Framework versions has been removed from the installer in 4.4:
However, the .NET Micro Framework and Visual Studio support has been already separated in the previous version, so you only need to install the .NET Micro Framework 4.3 SDK (just the MSI), and you get the support back:
The following step is no longer necessary, I added all target files fo versions 3.0 to 4.to the extension above.
The last problem to solve is that the older targets don't actually work in Visual Studio 2017. When you switch to one of them, you get a not-very-helpful warning:
The MSI installer comprises two parts. First, it install all the assemblies, emulator (as well as the mentioned Microsoft.SPOT.Tasks.dll) into Program Files, usually %PROGRAMFILES(X86)%\Microsoft .NET Micro Framework, and second, it installs the target files for msbuild, usually into %PROGRAMFILES(X86)%\MSBuild\Microsoft\.NET Micro Framework. The problem is that Visual Studio 2017 does not refer to this shared msbuild folder anymore as every instance has now its own folder. That's where we have to deliver the target files.
The trick is to find where on disk the instance is. The idea is to find something like C:\Program Files (X86)\Microsoft Visual Studio\[instance name]\[edition]\MSBuild\Microsoft\.NET Micro Framework\v4.4. Last step is to copy all the folders for older versions next to it, i.e. all the folders from %PROGRAMFILES(X86)%\MSBuild\Microsoft\.NET Micro Framework.
Tip: executing Environment.GetEnvironmentVariable("VSAPPIDDIR") in the C# Interactive window in Visual Studio will give you a hint where to look for that instance on the disk.