7

I have a base project deployed to GAC that implements the ITemplate interface. e.g) class PageRenderMaster : ITemplate public void Transform(Engine engine, Package package) {}

I have domain specific concrete class that inherits the base class from Global project. e.g) class PageRender : PageRenderMaster

The following error been thrown while uploading the concrete project dll using TcmUploadAssembly.

Error: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.

Could someone help me to fix this issue and let me know the location where i could find the LoaderExceptions in Tridion?

2 Answers 2

6

I think your approach is sound, I do this myself all the time. As long as all the assemblies on which your template assembly depends are in the GAC, there is no problem with it.

I suspect that the template assembly may contain other references to DLLs that are not in the GAC. Do you have any references to third party DLLs in your code?

If all else fails, you may consider merging all the required DLLs into a single DLL using ILMerge, and upload that to Tridion with TcmUploadAssembly. This can be integrated into your build procedure with a post-build action.

1
  • Yep. I was referring to a different version of dll that has been referred in base project. Deploying the correct version of dll in GAC resolved the issue. Thanks all. Commented Jun 11, 2013 at 12:46
4

TCM Upload Assembly tool takes a parameter as path of your DLL and try to locate a class (at least one should be there) which implements ITemplate interface. This tool will not look/search/scan the GAC for dependency.

The error is a result of fact that TCM Upload Assembly is not able to find any class at the specified path of DLL.

If you want to upload a TBB using TCM Upload assembly, then the specified path of DLL must contain a class implementing ITemplate interface; alternatively you can use the method what Dominic has suggested above where you need to manually take care of all the tasks being done by the TCM Upload Assembly tool

1
  • Thanks pankaj. The dll path was correct and am able to upload the dll if am not inheriting any base classes from a Global project. But the problem arises when i try to inherit a base class from GAC project along with ITemplate interface. class PageRender : PageRenderMaster, ITemplate { public void Transfrom(Engine engine, Package package){} } Commented Jun 11, 2013 at 11:14

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.