jcurl / RJCP.DLL.SerialPortStream

SerialPortStream is an independent implementation of System.IO.Ports.SerialPort and SerialStream for better reliability and maintainability. Default branch is 2.x and now has support for Mono with help of a C library.
Microsoft Public License
639 stars 199 forks source link

Include precompiled libnserial library into NuGet package #33

Closed dima117 closed 7 years ago

dima117 commented 7 years ago

Could you include precompiled libnserial library into NuGet package like it is in sqlite package?

This eliminates the need for compilation and greatly simplifies the deployment.

jcurl commented 7 years ago

Unfortunately this is not a generic solution. For what architecture, CPU should the binary be for? It quickly gets out of hand trying to support everything that software might work on. and I've decided that a package maintainer must install the binary for Unix. I support directly Ubuntu - you see the packages for Ubuntu on the release page that can be installed. But I don't have the resources for other architectures and distributions. I don't have a mac, maybe someone wants Mac specific binaries.

The second problem I've observed is if compiling a binary has dependencies on operating system code, what should I do with those dependencies? For example, compiling on Cygwin generates dependencies to cygwin1.dll. Compiling on MinGW64 provides dependencies on libgcc. I haven't checked, but I wouldn't be surprised if there are dependencies on Linux either for something.

I hope you accept my decision, that I believe the best solution is to provide a separate package that a user can install instead, outside of NuGet. It also prevents baggage for Windows users that don't need that library for Linux, Solaris Sparc, etc.

You are of course welcome to provide patches for builds on a separate branch for your architecture, and to provide the binaries that I can put on the release page, as well as provide details on installing those packages.