Why does this program need Vulcan DLL's?

This forum is meant for questions and discussions about the X# language and tools
Post Reply
ic2
Posts: 1858
Joined: Sun Feb 28, 2016 11:30 pm
Location: Holland

Why does this program need Vulcan DLL's?

Post by ic2 »

I have recently changed Vulcan references to X#. One exe doesn't work without these Vulcan DLL's in the directory:
VulcanRTFuncs.dll, VulcanVOGUIClasses.dll, VulcanVORDDClasses.dll, VulcanVOSystemClasses.dll, VulcanVOWin32APILibrary.dll

but as you can the in the picture, no Vulcan DLL's are included, nor are these with only non system or X# reference (red underlined).
WhyVulcanLibsNecessary.jpg
WhyVulcanLibsNecessary.jpg (26.69 KiB) Viewed 496 times
The project is in a solution with 1 DLL which I saw still uses Vulcan DLL's. But that DLL is not included.


I tried DependencyWalker but this has not been updated for years and only produces unusable output and a GitHub project I found (https://github.com/lucasg/Dependencies) doesn't work either.

What could cause this or how can I check?



Dick
User avatar
robert
Posts: 4520
Joined: Fri Aug 21, 2015 10:57 am
Location: Netherlands

Why does this program need Vulcan DLL's?

Post by robert »

Dick,
Dependency walker does not find Dotnet dependencies.
To check these open the assemblies with ILSpy.
I suspect that WCFInterfaces is an assembly that you created yourself and that this assembly has a reference to Vulcan.
Maybe not on purpose, but if you compiled this assembly with Vulcan or X# in the Vulcan dialect then some attributes may have been added to the assembly that require the Vulcan assemblies to be there.
To avoid that recompile that assembly in the X# Core dialect and simply remove the references to the Vulcan DLLs.

Robert
XSharp Development Team
The Netherlands
robert@xsharp.eu
ic2
Posts: 1858
Joined: Sun Feb 28, 2016 11:30 pm
Location: Holland

Why does this program need Vulcan DLL's?

Post by ic2 »

I hardly dare to to write this....:blush:

I didn't replace that exe in my production environment - and was still using the old one based on Vulcan there, assuming I was using the new one based on X#. Sorry!

But my question learned me that ILSpy is also suitable as a .Net "DependencyWalker" Thanks for that (too)!

Dick
NickFriend
Posts: 248
Joined: Fri Oct 14, 2016 7:09 am

Why does this program need Vulcan DLL's?

Post by NickFriend »

Hey Dick, this is great... you didn't blame VS.

We're making progress B) B)

Nick
User avatar
robert
Posts: 4520
Joined: Fri Aug 21, 2015 10:57 am
Location: Netherlands

Why does this program need Vulcan DLL's?

Post by robert »

Dick,
ic2 wrote:I hardly dare to to write this....:blush:

I didn't replace that exe in my production environment - and was still using the old one based on Vulcan there, assuming I was using the new one based on X#. Sorry!

But my question learned me that ILSpy is also suitable as a .Net "DependencyWalker" Thanks for that (too)!

Dick
That has happened to all of us.
The solution: give your assemblies assembly version numbers and increment this version when you do a breaking change (like switching the runtime).

Robert
XSharp Development Team
The Netherlands
robert@xsharp.eu
ic2
Posts: 1858
Joined: Sun Feb 28, 2016 11:30 pm
Location: Holland

Why does this program need Vulcan DLL's?

Post by ic2 »

Hello Nick,

NickFriend wrote:Hey Dick, this is great... you didn't blame VS.
We're making progress B) B)
Of course I tried but I couldn't possibly think of anything. Normally it is a lot easier to blame VS as VS normally is to blame :silly:

Dick
Post Reply