This is a VERY niche case but I still wanted to throw it out there!
I'm using ZeroMQ (NetMq 4.0.1.10) with a Crestron v4 Processor (they are used in home automation systems). The processor uses Mono 6.12.0.107 for their .Net runtime with their latest firmware. Long story short: the native Opcode calls in NetMQ.Core.Utils fail causing the entire application to crash!
Thankfully, the fix was easy: Just remove the call to it in NetMQ.Core.Utils.Clock (much like your preprocessor command that singles out NETSTANDARD1_6) and everything worked as expected!
From this experience, I wanted to highlight 3 things for your consideration:
1) The error handling in NetMQ.Core.Utils.OpCode could use some improvement (there is none right now!).
2) It could be helpful to allow NetMQ.Core.Utils.Clock.NowMs() to bypass NetMQ.Core.Utils.Clock.Rdtsc as an option (then I can bypass and avoid having a custom-built library!).
3) The library needs some work to make it run in VS2022 (Include JetBrains.Annotations, Set the LangVersion to 8+, Fix Assumes.NotNull() calls in TcpListener.SetAddress() and V2Encoder.SizeReady(), etc.). Nothing major but could use some attention!
This is a VERY niche case but I still wanted to throw it out there!
I'm using ZeroMQ (NetMq 4.0.1.10) with a Crestron v4 Processor (they are used in home automation systems). The processor uses Mono 6.12.0.107 for their .Net runtime with their latest firmware. Long story short: the native Opcode calls in NetMQ.Core.Utils fail causing the entire application to crash!
Thankfully, the fix was easy: Just remove the call to it in NetMQ.Core.Utils.Clock (much like your preprocessor command that singles out NETSTANDARD1_6) and everything worked as expected!
From this experience, I wanted to highlight 3 things for your consideration: 1) The error handling in NetMQ.Core.Utils.OpCode could use some improvement (there is none right now!). 2) It could be helpful to allow NetMQ.Core.Utils.Clock.NowMs() to bypass NetMQ.Core.Utils.Clock.Rdtsc as an option (then I can bypass and avoid having a custom-built library!). 3) The library needs some work to make it run in VS2022 (Include JetBrains.Annotations, Set the LangVersion to 8+, Fix Assumes.NotNull() calls in TcpListener.SetAddress() and V2Encoder.SizeReady(), etc.). Nothing major but could use some attention!