DNNE icon indicating copy to clipboard operation
DNNE copied to clipboard

Single library output ?

Open maximilien-noal opened this issue 5 years ago • 21 comments

Hello,

Thank you very much for this project !

I can finally write a libretro core with .NET 5 in a manner that is fully supported.

Is it or will it be possible to build everything in a single static library ?

I want to be able to ship only a single file per platform (Windows, Linux, Mac) like libretro cores written in C do.

It does not seem to be possible in my mind (there's got to be a proxy), but it doesn't hurt to ask.

Thank you very much again !

maximilien-noal avatar Sep 14 '20 12:09 maximilien-noal

A couple of my use cases would prefer that as well - though not having to do a COM Interface or Embedinator 4000 is worth the switch to DNNE.

jcapellman avatar Sep 14 '20 13:09 jcapellman

Is it or will it be possible to build everything in a single static library ?

@maximilien-noal Great question. That is something I am thinking about working with @vitek-karas on supporting. There are some minor issues to handle and a few major ones, if a "self-contained" library is desired, that would need to be addressed. As an FYI we are actively discussing the inclusion of this kind of tech in .NET 6.0. Nothing is certain but as we hear more from the community we take this feedback seriously during the planning phase.

@maximilien-noal and @jcapellman

Are either of you looking at self-contained deployment or would shared-framework be fine?

/cc @jkotas

AaronRobinsonMSFT avatar Sep 14 '20 18:09 AaronRobinsonMSFT

Self Contained would be preferred, but shared framework would be ok as a hold out until .NET 6

jcapellman avatar Sep 14 '20 23:09 jcapellman

Either is very fine, even if self-contained would be interesting to ease shipping even more.

maximilien-noal avatar Sep 15 '20 06:09 maximilien-noal

I too would love to see this be implemented. For me, self-contained would be super amazing, but shared framework is also fine.

NickAcPT avatar Oct 18 '20 01:10 NickAcPT

IMHO, both of the two approaches should be available.

AlexandreGarino avatar Nov 12 '20 14:11 AlexandreGarino

I'd also really like selfcontained export for this to be available!

LeonarddeR avatar Nov 14 '20 18:11 LeonarddeR

I would prefer a single-file library, but targeting shared-framework. This is because I am loading into a hostile native process (Excel) and need to share with other libraries, so would prefer to support the newest framework on the machine.

govert avatar Dec 06 '20 17:12 govert

This would be great. Currently we are still forced to use net472 - we are using DllExport for unmanaged exports and Costura.Fody for single library output. This feature would finally make it possible to migrate to .NET 5.

esso23 avatar Apr 06 '21 11:04 esso23

Any news on self-contained publishing, now that .NET 6 is available? I want to provide a plugin for a native application, ideally developed in .NET 6 and self-contained.

bitapparat avatar Nov 13 '21 15:11 bitapparat

@bitapparat I am sort of reluctant to evangelize this functionality but I did add basic support in an experimental way. Getting it to work is not for the faint of heart but that is mostly an issue with collecting all the needed .NET components and putting them in the right place. The DNNE support is as good as it can get given the current library support for self-contained in .NET.

https://github.com/AaronRobinsonMSFT/DNNE/blob/5e54164791978b706749b7b3083e32c3cd2fcb7c/src/msbuild/DNNE.props#L87-L93

AaronRobinsonMSFT avatar Nov 13 '21 23:11 AaronRobinsonMSFT

Just to clarify, I looked into .net 6.0 and recognize, that the single library output will be only available for "executables". Did I miss anything, how it can be made elsewhere?

climblinne avatar May 04 '22 07:05 climblinne