I have a project that targets two different operating systems/frameworks:
net461 on Windows and netcoreapp2.0 on OSX
Are you using the new csproj format? If so it has built in support for multiple target frameworks.
For example running dotnet pack against a .csproj file with this content:
net461;netcoreapp2.1;netstandard2.0
will result in a .nupkg that works for .NET Framework 4.6.1, .NET Core 2.1 and .NET Standard 2.0.
Various trick can then be used to include specific parts for each framework depending on what's available.