luca-piccioni / OpenGL.Net

Modern OpenGL bindings for C#.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

NuGet: support .NET Core & .NET Standards

luca-piccioni opened this issue · comments

The OpenGL.Net_VC15 solution includes project targeting .NET Core 1.1, .NET Core 2.0 and .NET Standard 2.0. The assemblies should be included in the NuGet package.

  • Determine side effects for other derived NuGet packages (mainly .CoreProfile, .ES2Profile)
  • Change .appveyor in order to use Visual Studio 2017 image (version 15.3)
  • Determine .NET Standard 1.1 limitations
    • Cannot have library search path (multi-platform ANGLE support broken)
    • Memory.Set thrown NotImplementedException
  • Determine .NET Standard 1.4 limitations
    • Cannot have library search path (multi-platform ANGLE support broken)
    • Memory.Set thrown NotImplementedException
  • Determine .NET Standard 2.0 limitations
    • Memory.Set thrown NotImplementedException
  • Determine .NET Core App 1.1 limitations
    • Cannot have library search path (multi-platform ANGLE support broken)
    • Memory.Set thrown NotImplementedException
    • Generic overrides cause boxing of blittable types (lack of __makeref)
    • Logging is not supported by metadata (lack of System.Xml)
    • No support for experimental GL extensions
    • EGL initialization depends on current working directory instead of assembly directory
  • Determine .NET Core App 2.0 limitations
    • No support for experimental GL extensions
    • EGL initialization depends on current working directory instead of assembly directory

Is it possible to lower the .NET Standard version, ideally to .NET Standard 1.0 or .NET Standard 1.4?
If it is not possible, then could you please list the classes that prevent it and which are used by OpenGL.NET?

For .NET Standard 2.0 support, use the pre-release UWP6.0

@21c-HK The .Net Standard 1.4 currently compiles. I suppose it runs well as the others. Have you tried it?

@JimSEOW I currently run .NET Standard 2.0 with .NET Core 2.0 sample. What prevent UWP to reference that binary (via nuget or not)?

What are the currently steps for using OpenGL.Net on the DotNet Core 2.0 framework (preferably on Ubuntu) and will a Nuget package be created?

@HUg0005 It is necessary to build, test and deploy using VS 2017 on AppVeyor. Currently builds fine; it would be nice to have a unit test set for .NET Core. Then it is possible to deploy the NuGet package including the .NET Core binaries.

Indeed we have a nuget package with .NET Core binaries,versioned as 0.7.1.

Any ETA on the .NET standard 2.0 support? thanks.

Wouls be interested in @matyasforian question aswell

Well, projects are there. They're not included in VS2017 solution because something in the IDE/environment do not let me compile them. I need to investigate a little more on the subject to integrate them in the nuget package.

But nothing stops you toopen the project and compile them manually.

@luca-piccioni hey is there a reason why 0.7.1 NuGet package have .NET Core binaries, but 0.8.4 haven't? Sorry but I can't find any corresponding discussion.

@luca-piccioni hey, any news? do you need any help with maintaining packages?

Sure, it would be awesome if someone would take care about the packages maintenance. Till the next year I won't be able to keep it all updated (nuget packages, appveyor builds on Windows and Linux,. Net Core and Standards binaries...).