User 1a8d11549a
01-02-2012 06:02:38
I have recently released the new version of my ELN, which now contains Marvin Sketch as a drawing editor. Before this integration, the installer size was manageable 14 MB. After the inclusion of the JChem. NET installer its size now has exploded to 67 MB (>4 times!), most of this due to unused JChem.NET functionality (the referenced JChem .NET dll's would have a size of 15 MB only after compression).
I tried to place the referenced JChem .NET dll's into the application folder, to avoid the installation of the full package, but this doesn't work, probably due to missing registry entries. - Therefore: Is there any way either to create a custom, more streamlined JChem.NET installer (possibly only for x64 or x86, if this should halve the size), or alternatively to incorporate only required JChem.NET dll's only into a .NET project? Any help would be much appreciated!
Update: Included screenshot of the referenced dll's
Regards, Stefan
User 1a8d11549a
01-02-2012 08:05:33
After writing above post, I was looking at this further - and I think I found the solution now! I just realized that I need to include the whole IKVM overhead in the application folder. After removing the large help file and all IKVM components not required for my functionality, I now come up with ca. 20 MB JChem payload as compared to the 49 MB required before. I still need to implement an installer and test the whole installation on x64 and x86 VM's, but things look promising now.
Which, as a side note, demonstrates again how desirable a purely native NET solution for JChem would be, without any IKVM overhead ... - dreaming allowed :-)
Best regards,
Stefan
User 1a8d11549a
01-02-2012 14:00:16
My apologies for this forum monologue, but maybe my findings are interesting for others also.
I was able now reduce my installer from initially 78.5 MB containing the JChem_NET 5.7.0 installer, down to 38.1 MB using the required DLL's only - that's a size reduction by ca. 45%. I've made some rather extensive testing on XP and Windows 7 32 & 64 bit, and all required functionality of Marvin Sketch seems the be there.
For all those interested, there's a screen shot below showing the critically required infrastructure DLL's for running Marvin Sketch 5.7.0, to be placed into the application folder. Please note that the large Marvin help DLL was also removed in this setup and therefore not available from Marvin Sketch. The DLL's were referenced from the GAC by the installer project.
This should finally conclude this little writing to myself :-). Sometimes the spark ignites just minutes after you have put the problem into words ...
Cheers, Stefan
ChemAxon eb65a25631
01-02-2012 15:09:07
Hi Marsu,
Thank you for the investigation!
Just some comments topic:
If you confident on exactly what functionality will be used, then you can freely shrink the installation package.
But, In the future, if you decide to make some more Marvin functionality available, or there will be future versions of JChem.NET that just requires the removed assemblies you have to repeatedly test the functionality remains intact. I I think, it might create unnecessary risks.
We are working on a Jchem.NET package that contains the jars as separate assemblies.
It will also contain all the available third party jars as assemblies too. (What the current version unfortunately not.)
The good news is the assemblies can be choosen in more details (of course with more risk).
The bad news is, the full package will be noticeably bigger.
Sadly, I don't have any suggestion how to make sure, that all the assemblies are available for the functionality the user will ever use in the shrinked package.
Regards,
András
User 1a8d11549a
01-02-2012 15:27:10
Thanks for your comments, Andras, I am aware of the risks of my approach and the required testing. I am also looking forward to your jar-approach; I guess when released, there will be some documentation on how to utilize it.
Stefan