Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

If you are running a version of Windows before Windows 10 and when downloading/updating get a message similar to, "Could not create SSL/TLS secure channel."... please install a newer version of the .NET Framework from Microsoft. Vista can only use v4.6. Others should install the newest available, like v4.8.

[Help | Plugin Dev] Assembly Load

Hello there!

So i'm developing (updating) my plugin DFAssist, you can check the code here on github:

>> https://github.com/easly1989/ffxiv_act_dfassist

the problem i'm facing right now is that, unless i put the plugin and all the needed assemblies in the main ACT directory it will not work, and give me this errors:



usually i try to load it from a "Plugins/DFAssist" folder, but the result is the same.

if I remove all usages of the Overlay.NET library I don't have the problem.

As you can see from the source code I did create an hardcoded LoadAssembly to be sure that all those needed dll gets loaded,
but even putting a breakpoint doesn't help, the InitPlugin doesn't gets fired at all.

So there must be something i'm missing,
Can someone help me?

Thank you in advance for the support (:


Tagged:

Comments

  • Typically .NET assemblies will be lazy loaded.  Meaning ACT will only load this Overlay.NET assembly when it encounters code that references it.  That does not mean when it is used, but the first time it is in scope.

    If there is a reference to a class in this assembly in the constructor or used as a class level field, then the assembly must be loaded immediately when the plugin class is instantiated... before InitPlugin is called.  The "Load Error" message box comes from when ACT is creating the plugin instance, before it attempts InitPlugin.

    If you need something to happen in InitPlugin before you load any assemblies, you need to have the plugin class not reference any external classes that trigger the assembly load.  At worst, you may need to use agnostic class level fields like "object" or the dynamic keyword... or have all of your code inside of another class that is only referenced after your setup.

    It seems there were a few commits since your thread post which removed all of these references already, so it was a little hard to follow where you still use this.

  • Yeah i'm still in the middle of "trying to undestand how to hook to ffxiv" XD...

    So i'm trying different solutions. And modifying the code/references on the go.

    Anyway i had the problem before, and what you say sounds reasonable; as soon as i can try your suggestion i'll let you know the outcome

    thank you for the answer (:
  • So, I just edited my code and created a static class to call out the methods i need from the external dll and everything is loading just fine (:

    I also had to 'Unblock' the dll, otherwise it would still throw errors.

    Anwyway, thank you for your help,
    keep the good work up (:
Sign In or Register to comment.