在将我现有的Tridion 2009事件DLL (在2011服务器上编译)添加到bin目录并在Content Manager配置文件中注册DLL后,GUI现在返回以下错误。我已经查看了事件日志,Tridion日志等关于“丢失依赖”的更多细节,有人有什么想法吗?
Could not load file or assembly 'Tridion.Extensions.Events, Version=1.0.20.521,
Culture=neutral, PublicKeyToken=ecb60dbe3cbb7440' or one of its dependencies.
The system cannot find the file specified.
Unable to get LangID of User (tcm:0-2851-65552). Initialization of the extension
'C:\Program Files (x86)\Tridion\bin\Tridion.Extensions.Events.MDO.dll' failed.
System.Reflection.RuntimeAssembly.GetExportedTypes(RuntimeAssembly,ObjectHandleOnStack)
System.Reflection.RuntimeAssembly.GetExportedTypes()
Tridion.ContentManager.Extensibility.TcmExtension.LoadExtensions()
Tridion.ContentManager.Extensibility.TcmExtension.LoadExtensions()
Tridion.ContentManager.Extensibility.TcmExtension.InitializeExtensions()
Tridion.ContentManager.Extensibility.EventSystem.DeliverEvent(IEnumerable`1,TcmEventArgs,EventDeliveryPhase)
Tridion.ContentManager.Extensibility.EventSystem.DeliverEvent(IdentifiableObject,TcmEventArgs,EventDeliveryPhase) Tridion.ContentManager.IdentifiableObject.Load(LoadFlags,Boolean)
Tridion.ContentManager.IdentifiableObject.Load(LoadFlags)
Tridion.ContentManager.BLFacade.IdentifiableObjectFacade.Read(UserContext,String,XMLReadFilter) XMLState.GetPropertyElem XMLState.GetProperty User.LangID发布于 2012-05-10 08:21:33
看起来您有两个程序集:Tridion.Extensions.Events.dll和Tridion.Extensions.Events.MDO.dll。由于您通过Tridion.ContentManager.config中的完整路径来引用TcmExtension DLL,因此在同一目录中不能有依赖于另一个DLL的DLL。
解决方案是将“共享库”(可能是Tridion.Extensions.Events.MDO.dll )放在GAC中。
发布于 2012-05-10 14:46:05
幸运的是,.NET程序集在其元数据中包含所需的所有依赖项信息。面对这个问题,我通常会尝试用一个能读懂它的工具来打开程序集,比如ILDASM,或者IlSpy。这给了你一个具体的清单,而不是模糊和神秘的“或它的依赖项”。
另一种方法是使用FUSLOGVW来监视.NET运行时在哪里查找程序集。
https://stackoverflow.com/questions/10524548
复制相似问题