3

既存の Tridion 2009 イベント DLL (2011 サーバーでコンパイル) を bin ディレクトリに追加し、DLL を Content Manager Config ファイルに登録した後、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
4

2 に答える 2

5

Tridion.Extensions.Events.dllとの 2 つのアセンブリがあるようですTridion.Extensions.Events.MDO.dll。TcmExtension DLL は Tridion.ContentManager.config 内のフル パスで参照されるため、同じディレクトリ内で別の DLL に依存するものを持つことはできません。

解決策は、「共有ライブラリ」(おそらくTridion.Extensions.Events.MDO.dllあなたのため)をGACに入れることです。

于 2012-05-10T00:21:33.290 に答える
1

さいわい、.NET アセンブリには、メタデータに必要なすべての依存関係情報が含まれています。この問題に直面した場合、私は通常、これを読み取ることができるツール (ILDASM や IlSpy など) を使用してアセンブリを開こうとします。これにより、漠然とした不可解な「またはその依存関係の1つ」ではなく、探すべきものの具体的なリストが得られます。

もう 1 つの方法は、FUSLOGVW を使用して、.NET ランタイムがアセンブリを探している場所を監視することです。

于 2012-05-10T06:46:04.690 に答える