8

I'm developing my first Alchemy4Tridion Plugin, but I'm facing some questions.

If in my solution I add a 3rd party library, when I install my plugin in the content manager (via drag&drop in alchemy tab) the external dll is not founded. I have to copy it manually in the plugin /bin folder or register in the GAC of the CM server to make it work.

Is there some way to configure the a4t plugin to deploy those 3rd party dll automatically, just when I drag & drop the plugin?

Thanks!!

0

3 Answers 3

8

The current version of Alchemy4Tridion (0.6.0) currently only packages the plugin's actual DLL into the .a4t package. We're working on some ideas for a dependency system for 3rd party DLLs to be configured to be packaged as well, without causing issues if two separate plugins use 3rd party libraries of different versions.

The current workarounds (2 of which you found) are

  1. deploy the 3rd party library to the GAC
  2. deploy the library to the plugin's /bin folder
  3. deploy the library to the Alchemy bin folder.

Options one and three are probably the easiest if you are in development mode and doing a lot of uninstall/reinstall of your plugin as you test.

An experimental system for third party libraries may be released shortly, if/when it does I'll update this answer with a how to.

Hope that helps!

UPDATE 5/11/2016 The functionality to add 3rd party DLL's to plugins has been added with the release of 0.8.1. A how to article can be found at http://www.alchemywebstore.com/help/how-to/Packaging-DLL-References.

2
6

Generally with Alchemy I'd suggest creating a "Dependencies" folder in the root of your solution and placing any external DLLs there, then referencing them in your solution. If this doesn't work for you I'd log an issue at https://github.com/Alchemy4Tridion/Alchemy4Tridion/issues to have the Alchemy team look into whether there might be a bug.

4

Another option would be to include your dependencies in your plugin.

You could use a tool like ILMerge -- or you could simply embed your dependencies as embedded resources and load them on-the-fly. This approach can also be used when you have an event system or TBB that depends on external assemblies.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.