2012-05-09 59 views
3

將我現有的Tridion 2009事件DLL(在2011服務器上編譯)添加到bin目錄並在Content Manager配置文件中註冊DLL後,GUI現在返回下面的錯誤。我已經檢查過事件日誌,Tridion日誌等更多關於「缺少依賴」的任何人的任何想法的細節?將Tridion 2009事件系統遷移到Tridion 2011 SP1時出錯

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 
+0

您是否重新啓動了所有SDL Tridion Services,IIS和相關的COM +包? –

回答

5

它看起來像你有兩個組件:Tridion.Extensions.Events.dllTridion.Extensions.Events.MDO.dll。由於您通過Tridion.ContentManager.config中的完整路徑引用TcmExtension DLL,因此您不能在同一個目錄中擁有依賴於另一個的路徑。

解決方案是將「共享庫」(可能爲您的Tridion.Extensions.Events.MDO.dll)放入GAC。

1

幸運的是,.NET程序集在其元數據中包含所需的所有依賴信息。面對這個問題,我通常會嘗試用一個可以讀取該文件的工具打開程序集,例如ILDASM或IlSpy。這給你一個需要尋找的具體清單,而不是模糊和神祕的「或它的一個依賴」。

另一種方法是使用FUSLOGVW來監視.NET運行時正在查找程序集的位置。

相關問題