Chystám se již delší dobu připravit instalátor, který zařídí vše potřebné. Měsíce ovšem plynou a nic se neděje, a proto jsem se rozhodl sepsat, jak jsem to zprovoznil ručně.
Někteří jste si možná všimli, že úpravu .NET Micro Frameworku, která umožňuje jeho provoz ve Visual Studiu 2017 jsem zveřejnil na GitHubu již v červnu 2017, viz větev VS15.3. Můžete si tedy instalátor SDK buď zkompilovat sami, a to tak, že:
To je všechno pěkné, ale většina hardware co mám je 4.3. Bohužel, podpora starších verzí .NET Micro Frameworku byla ve verzi 4.4 z instalátoru odebrána:
Není však třeba zoufat, jelikož .NET Micro Framework samotný a podpora Visual Studia byly již odděleny v minulé verzi. Stačí tedy doinstalovat .NET Micro Framework 4.3 SDK (jen MSI), a rázem máme podporu předchozích verzí zpět:
Následující postup již není nutný, přidal jsem vše potřebné pro verze 3.0—4.3 do rozšíření výše.
Poslední zádrhel, který zbývá vyřešit je, že tyto starší verze ve skutečnosti ve Visual Studiu 2017 nefungují. Když projekt přepnete na některou ze starších verzí, objeví se sice varování, ale příliš užitečná nejsou:
MSI instalátor se totiž skládá ze dvou částí. Jednak nainstaluje všechny potřebné knihovny, emulátor (a např. i zmíněný Microsoft.SPOT.Tasks.dll) do Program Files, typicky %PROGRAMFILES(X86)%\Microsoft .NET Micro Framework, a za druhé nainstaluje konfigurační a projektové soubory pro msbuild, ty typicky do %PROGRAMFILES(X86)%\MSBuild\Microsoft\.NET Micro Framework. Problém spočívá v tom, že Visual Studio 2017 již na tuto sdílenou složku pro msbuild neodkazuje, nýbrž má každá instance svou vlastní složku. Tam tedy musíme soubory dopravit ručně.
Trik spočívá v tom zjistit, kde se vaše instance na disku nachází. Cílem je najít něco jako C:\Program Files (X86)\Microsoft Visual Studio\[název instance]\[edice]\MSBuild\Microsoft\.NET Micro Framework\v4.4. Pak už jen zbývá překopírovat knihovny pro ostatní verze vedle v4.4, tj. všechny knihovny z %PROGRAMFILE(X86)%\MSBuild\Microsoft\.NET Micro Framework.
Tip: Spuštěním Environment.GetEnvironmentVariable("VSAPPIDDIR") v okně C# Interactive ve Visual Studiu vám napoví, kde na disku tuto instanci hledat.