2

We are using Keepeek as external DAM solution and we have developed an ECL Provider.

Assembly Name : KeepeekProvider.dll

On the publishing side, we need to execute specific treatments on Keepeek ECL items. So we have developed a dedicated TBB (C#). The first version (very basic) was working well.

Now that we have added additional treatments in this TBB, we need to access model classes and util classes from the assembly KeepeekProvider.dll.

And of course we have the following error :

Could not load file or assembly 'KeepeekProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.

My question: what is the best way to deal with this situation ? Do we have to register our KeepkeekProvider assembly in the GAC ? Could we just copy/paste it in tridion/bin ? Another solution ?

Thanks in advance

1 Answer 1

2

You have two options for referencing third party DLLs in your ECL provider which should work for sure, a third one which might work.

  1. register the third party DLL in the GAC (of all CMS and Publisher servers)
  2. use ILMerge to join the third party DLL with the provider DLL (via a post build step) into a single DLL
  3. place the third party DLL in the C:\ProgramData\SDL\SDL Tridion\External Content Library\AddInPipeline\AddIns\YourProvider\ folder, next to the provider DLL

The third option I'm not 100% sure will work, but it is by far the easiest to try, if you don't want to have that third party DLL in the GAC for any reason (although option #1 is the official way).

update

Reading your question again, maybe I have misunderstood it. If your question is, how you can access a third party DLL (which could be your ECL provider DLL) from a TBB, that would be possible by options #1 and #2 (where for #2, you use ILMerge to combine the third party DLL with the TBB, so you can upload it as a single DLL in a SDL Tridion Assembly TBB).

If you indeed need to reference some classes/methods from your ECl provider DLL, then I think it makes sense to split these comon classes into a separate DLL, so you can either place that in the GAC or ILMerge it to the ECL provider DLL and the TBB.

2
  • Yes I need to reference classes from the ECL provider. The usage of a third DLL makes sense. Commented May 21, 2015 at 13:05
  • Regarding your option 3 (put the third party DLL in your provider folder) when you need to reference a third party DLL in your ECL provider : I confirm it works as this is the solution we use today. Commented May 21, 2015 at 13:12

Your Answer

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

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