Метод или операция не реализованы исключение даже после того, как сборка была установлена ​​в GAC - PullRequest
0 голосов
/ 17 марта 2019

У меня возникла проблема с WPF, когда в мое приложение загружена ранняя версия сборки, поэтому, скажем, Xceed.WPF.Toolkit, но v.2.0.Я получил расширение для этого приложения, которое я пишу, для которого требуется более новая версия инструментария, скажем, v.3.4.

Я думал, что при установке плагина для приложения, которое добавляет дополнительные функции к базовому приложению, если я добавлю новый v.3.4 из Xceed в GAC, он сможет анализировать XAML с использованием новых элементов управлениядоступно в этой сборке и все будет хорошо.Тем не менее, я продолжаю получать это:

enter image description here

Моя сборка четко установлена ​​в GAC:

enter image description here

Есть ли способ сделать обнаруженную через GAC новую версию сборки доступной для обнаружения?

Я пытался использовать Assembly.LoadFrom() до вызова моего WPF InitializeComponent();, но даже если сборка загружается нормально, она все равно выдает исключение XAML при инициализации.

Будут оценены любые идеи.

РЕДАКТИРОВАТЬ:

Спасибо за предложение использовать средство просмотра журнала привязки сборки.Я смог извлечь из него следующий журнал.Основное приложение при загрузке набора инструментов Xceed связывается с версией 3.0 со следующим журналом:

*** Assembly Binder Log Entry  (3/17/2019 @ 12:19:24 AM) ***

The operation was successful.
Bind result: hr = 0x0. The operation completed successfully.

Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
Running under executable  C:\Program Files\Autodesk\Revit 2019\Revit.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: Where-ref bind. Location = C:\Program Files\Dynamo\Dynamo Core\2\nodes\Xceed.Wpf.Toolkit.dll
LOG: Appbase = file:///C:/Program Files/Autodesk/Revit 2019/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = Revit.exe
Calling assembly : (Unknown).
===
LOG: This bind starts in LoadFrom load context.
WRN: Native image will not be probed in LoadFrom context. Native image will only be probed in default load context, like with Assembly.Load().
LOG: Using application configuration file: C:\Program Files\Autodesk\Revit 2019\Revit.exe.Config
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
LOG: Attempting download of new URL file:///C:/Program Files/Dynamo/Dynamo Core/2/nodes/Xceed.Wpf.Toolkit.dll.
LOG: Assembly download was successful. Attempting setup of file: C:\Program Files\Dynamo\Dynamo Core\2\nodes\Xceed.Wpf.Toolkit.dll
LOG: Entering run-from-source setup phase.
LOG: Assembly Name is: Xceed.Wpf.Toolkit, Version=3.0.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4
LOG: Re-apply policy for where-ref bind.
LOG: Post-policy reference: Xceed.Wpf.Toolkit, Version=3.0.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4
LOG: GAC Lookup was unsuccessful.
LOG: Where-ref bind Codebase does not match what is found in default context. Keep the result in LoadFrom context.
LOG: Binding succeeds. Returns assembly from C:\Program Files\Dynamo\Dynamo Core\2\nodes\Xceed.Wpf.Toolkit.dll.
LOG: Assembly is loaded in LoadFrom load context.

Затем мое расширение пытается загрузить версию 3.4 со следующим журналом:

*** Assembly Binder Log Entry  (3/17/2019 @ 12:19:29 AM) ***

The operation was successful.
Bind result: hr = 0x0. The operation completed successfully.

Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
Running under executable  C:\Program Files\Autodesk\Revit 2019\Revit.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: Where-ref bind. Location = C:\Users\username\AppData\Roaming\Dynamo\Dynamo Revit\2.0\packages\archi-lab.net\bin\Xceed.Wpf.Toolkit.dll
LOG: Appbase = file:///C:/Program Files/Autodesk/Revit 2019/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = Revit.exe
Calling assembly : (Unknown).
===
LOG: This bind starts in LoadFrom load context.
WRN: Native image will not be probed in LoadFrom context. Native image will only be probed in default load context, like with Assembly.Load().
LOG: Using application configuration file: C:\Program Files\Autodesk\Revit 2019\Revit.exe.Config
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
LOG: Attempting download of new URL file:///C:/Users/username/AppData/Roaming/Dynamo/Dynamo Revit/2.0/packages/archi-lab.net/bin/Xceed.Wpf.Toolkit.dll.
LOG: Assembly download was successful. Attempting setup of file: C:\Users\username\AppData\Roaming\Dynamo\Dynamo Revit\2.0\packages\archi-lab.net\bin\Xceed.Wpf.Toolkit.dll
LOG: Entering run-from-source setup phase.
LOG: Assembly Name is: Xceed.Wpf.Toolkit, Version=3.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4
LOG: Re-apply policy for where-ref bind.
LOG: Post-policy reference: Xceed.Wpf.Toolkit, Version=3.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4
LOG: Found assembly by looking in the GAC.
LOG: Switch from LoadFrom context to default context.
LOG: Binding succeeds. Returns assembly from C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\Xceed.Wpf.Toolkit\v4.0_3.4.0.0__3e4669d2f30244f4\Xceed.Wpf.Toolkit.dll.
LOG: Assembly is loaded in default load context.

Может кто-нибудь помочь мне понять, что это значит?

...