* First pass to allow bulding different build artifact types (libraries, exes, web apps, etc) from the same tree. Each project is seperated physically and can have a local obj and bin directory wehen building. We assemble a release using dotnet publish.
This still needs a few changes and updates for compilation. I want to get the structural changes made however and committed locally at least.
* Rename some Assembly attribute files to Addin.cs and strip them down to just plugin info so we can use generated Assembly information. A few additions to csproj dependencies to get things to compile.
* Cleanup Directory.build.props. Make it reflect using the standard directories for output and publish to assemble a release.
* Restructure Projects so they are no longer nested (no need to remove files from compilation) and there can be project types in the solution that use a different SDK. We need the last bit in order to do ASP.NET in the same solution tree. Goal is to be able to dotnet publish and get useable output.
* Move OpenSim.sln to OpenSim.Server.RegionServer so the Server instances have similar naming (MoneyServer and RobustServer).
* Added a Data directory for each of the *.Server.* packages and put Server specific configuration here. Added a rule to csproj to install the configuration into the bin directory on a build. There are now OpenSim.Server.{RegionServer|RobustServer|MoneyServer} executables and if publish is used a platform specific binary will be built. Next step from this is Docker files to run each of the server components.
* More changes to get libs to resolve cleanly while we are in transition from mono addins.
* Move projects under Source in solution tree.
* Update nuget packages to address a vulnerability and pick up updates.
* Add metadata to create NuGet Package for EF Core Data Models.
* Include dlls we just carry in bin in the output directory when building.
* Bump version. Some changes to not publish test components.
SmartThreadPool code comes from http://www.codeproject.com/Articles/7933/Smart-Thread-Pool
This version implements thread abort (via WorkItem.Cancel(true)), threadpool naming, max thread stack, etc. so we no longer need to manually patch those.
However, two changes have been made to stock 2.2.3.
Major change: WorkItem.Cancel(bool abortExecution) in our version does not succeed if the work item was in progress and thread abort was not specified.
This is to match previous behaviour where we handle co-operative termination via another mechanism rather than checking WorkItem.IsCanceled.
Minor change: Did not add STP's StopWatch implementation as this is only used WinCE and Silverlight and causes a build clash with System.Diagnostics.StopWatch
The reason for updating is to see if this improves http://opensimulator.org/mantis/view.php?id=6557 and http://opensimulator.org/mantis/view.php?id=6586