Bug 60353 - Adding SkiaSharp to .NET Standard projects produces many duplicate DLLs
Summary: Adding SkiaSharp to .NET Standard projects produces many duplicate DLLs
Status: RESOLVED INVALID
Alias: None
Product: Class Libraries
Classification: Mono
Component: General ()
Version: unspecified
Hardware: PC Mac OS
: --- normal
Target Milestone: Untriaged
Assignee: Bugzilla
URL:
Depends on:
Blocks:
 
Reported: 2017-10-24 17:06 UTC by Frank A. Krueger
Modified: 2017-10-24 17:12 UTC (History)
2 users (show)

Tags:
Is this bug a regression?: ---
Last known good build:


Attachments
Picture of the VS solution tree after adding SkiaSharp (66.37 KB, image/png)
2017-10-24 17:06 UTC, Frank A. Krueger
Details
Picture of the VS solution tree after adding SkiaSharp (27.83 KB, image/png)
2017-10-24 17:07 UTC, Frank A. Krueger
Details
Project file demoing the problem (2.92 KB, application/zip)
2017-10-24 17:08 UTC, Frank A. Krueger
Details


Notice (2018-05-24): bugzilla.xamarin.com is now in read-only mode.

Please join us on Visual Studio Developer Community and in the Xamarin and Mono organizations on GitHub to continue tracking issues. Bugzilla will remain available for reference in read-only mode. We will continue to work on open Bugzilla bugs, copy them to the new locations as needed for follow-up, and add the new items under Related Links.

Our sincere thanks to everyone who has contributed on this bug tracker over the years. Thanks also for your understanding as we make these adjustments and improvements for the future.


Please create a new report on GitHub or Developer Community with your current version information, steps to reproduce, and relevant error messages or log files if you are hitting an issue that looks similar to this resolved bug and you do not yet see a matching new report.

Related Links:
Status:
RESOLVED INVALID

Description Frank A. Krueger 2017-10-24 17:06:35 UTC
Created attachment 25425 [details]
Picture of the VS solution tree after adding SkiaSharp

When I add SkiaSharp to a .NET standard project, the project tree gets overrun with DLLs, and DYLIBs (SO files are missing, where could they be?). Please see attached project and screenshots.

There are several bugs here:

1. Libraries shouldn't display their native file dependencies. I don't see Android support libs, Xamarin iOS, sqlite-raw, or any other native library wrappers showing their dependencies in the tree.

2. There's duplication in the tree: the same DLL shows up multiple times (along with its config files).

3. When compiling, there are duplicate output DLLs. libSkiaSharp.dll shows up no less than 3 times in the bin directory. Once at root, and twice on x86 and x64. 64-bit Intel has been mainstream for 10 years now - maybe we can drop at least the 32-bit version?

I understand you are shipping at least 2 * 3 platforms here (32-bit/64-bit, Linux/Mac/Windows) - but they shouldn't appear in the project tree. And please fix the naming in the bin directory so I actually know what to ship. As it is, I have no idea which of these DLLs actually needs to be deployed with my app.

If you need examples on how to package better, please look at Eric Sink's sqlite-raw. He is covering even more complex scenarios than you and never spills out these implementation details.
Comment 1 Frank A. Krueger 2017-10-24 17:07:12 UTC
Created attachment 25426 [details]
Picture of the VS solution tree after adding SkiaSharp
Comment 2 Frank A. Krueger 2017-10-24 17:08:05 UTC
Created attachment 25427 [details]
Project file demoing the problem
Comment 3 Chris Hamons 2017-10-24 17:12:30 UTC
Let's start with this as a SkiaSharp issues, they appear to use github issues over Xamarin bugzilla.

https://github.com/mono/SkiaSharp/issues/383