Generalnie skorzystałem z tej strony, ale na wszelki wypadek zrobię post, bo po prostu mi to działa.
Najważniejsza rzecz to:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp2.1</TargetFramework> <RuntimeIdentifier>win7-x64</RuntimeIdentifier> <LangVersion>7.1</LangVersion> </PropertyGroup> <ItemGroup> <PackageReference Include="System.ServiceProcess.ServiceController" Version="4.5.0" /> <PackageReference Include="Microsoft.Extensions.Hosting" Version="2.1.1" /> </ItemGroup> </Project>
Jeżeli zapomnimy o OutpuType to będzie nam „ciężko” zainstalować serwis w Windowsie.
Jeżeli zapomnimy o LangVersion 7.1 to nie będziemy mogli użyć deafault dla:
CancellationToken cancellationToken = default.
Poza tym zadziałało jak malowane.