Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2023.12.03 version broke XTB - see link in description #132

Closed
mtnmuncher opened this issue Dec 8, 2023 · 16 comments
Closed

2023.12.03 version broke XTB - see link in description #132

mtnmuncher opened this issue Dec 8, 2023 · 16 comments

Comments

@mtnmuncher
Copy link

MscrmTools/XrmToolBox#1308

@ingerAH-PP
Copy link

ingerAH-PP commented Dec 11, 2023

I experience the same issue when installing the latest version of the tool: 3.2023.12.3
XrmToolBox version: v1.2023.10.67

image

Error details:

Error Time: 2023-12-11 13:51:20.578
System.Reflection.ReflectionTypeLoadException
Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
mscorlib
at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
   at System.Reflection.RuntimeModule.GetTypes()
   at System.Reflection.Assembly.GetTypes()
   at System.ComponentModel.Composition.Hosting.AssemblyCatalog.get_InnerCatalog()
   at System.ComponentModel.Composition.Hosting.AssemblyCatalog.GetExports(ImportDefinition definition)
   at System.Linq.Enumerable.<SelectManyIterator>d__17`2.MoveNext()
   at System.ComponentModel.Composition.Hosting.CatalogExportProvider.InternalGetExportsCore(ImportDefinition definition, AtomicComposition atomicComposition)
   at System.ComponentModel.Composition.Hosting.ExportProvider.TryGetExportsCore(ImportDefinition definition, AtomicComposition atomicComposition, IEnumerable`1& exports)
   at System.ComponentModel.Composition.Hosting.ExportProvider.TryGetExports(ImportDefinition definition, AtomicComposition atomicComposition, IEnumerable`1& exports)
   at System.ComponentModel.Composition.Hosting.CatalogExportProvider.GetExportsCore(ImportDefinition definition, AtomicComposition atomicComposition)
   at System.ComponentModel.Composition.Hosting.ExportProvider.TryGetExportsCore(ImportDefinition definition, AtomicComposition atomicComposition, IEnumerable`1& exports)
   at System.ComponentModel.Composition.Hosting.ExportProvider.GetExports(ImportDefinition definition, AtomicComposition atomicComposition)
   at System.ComponentModel.Composition.Hosting.AggregateExportProvider.GetExportsCore(ImportDefinition definition, AtomicComposition atomicComposition)
   at System.ComponentModel.Composition.Hosting.ExportProvider.TryGetExportsCore(ImportDefinition definition, AtomicComposition atomicComposition, IEnumerable`1& exports)
   at System.ComponentModel.Composition.Hosting.CompositionContainer.GetExportsCore(ImportDefinition definition, AtomicComposition atomicComposition)
   at System.ComponentModel.Composition.Hosting.ExportProvider.TryGetExportsCore(ImportDefinition definition, AtomicComposition atomicComposition, IEnumerable`1& exports)
   at System.ComponentModel.Composition.Hosting.ExportProvider.GetExports(ImportDefinition definition, AtomicComposition atomicComposition)
   at System.ComponentModel.Composition.Hosting.ImportEngine.TryGetExports(ExportProvider provider, ComposablePart part, ImportDefinition definition, AtomicComposition atomicComposition)
   at System.ComponentModel.Composition.Hosting.ImportEngine.TrySatisfyImportSubset(PartManager partManager, IEnumerable`1 imports, AtomicComposition atomicComposition)
   at System.ComponentModel.Composition.Hosting.ImportEngine.TrySatisfyImportsStateMachine(PartManager partManager, ComposablePart part)
   at System.ComponentModel.Composition.Hosting.ImportEngine.TrySatisfyImports(PartManager partManager, ComposablePart part, Boolean shouldTrackImports)
   at System.ComponentModel.Composition.Hosting.ImportEngine.SatisfyImports(ComposablePart part)
   at System.ComponentModel.Composition.Hosting.CompositionServices.TryInvoke(Action action)
   at System.ComponentModel.Composition.Hosting.ComposablePartExportProvider.Compose(CompositionBatch batch)
   at XrmToolBox.PluginManagerExtended.LoadParts(Boolean isRetry)
   at XrmToolBox.PluginManagerExtended.LoadParts(Boolean isRetry)
   at XrmToolBox.PluginManagerExtended.RescanIfRequired()
   at XrmToolBox.PluginManagerExtended.Initialize(Form parentForm)
   at XrmToolBox.New.PluginsForm2..ctor()
   at XrmToolBox.New.NewForm..ctor(String[] args)
   at XrmToolBox.Program.Main(String[] args)

@devlinl
Copy link

devlinl commented Dec 11, 2023

Same here.

@mtnmuncher mtnmuncher changed the title 2023.12.08 version broke XTB - see link in description 2023.12.03 version broke XTB - see link in description Dec 11, 2023
@davidmartiindale
Copy link

Same issue for me

@imranakram
Copy link
Collaborator

@mtnmuncher @davidmartiindale Have you tried updating XTB to the latest version?

@MscrmTools Seems to be working fine with the latest version, any ideas what could cause this issue?

@ingerAH-PP
Copy link

ingerAH-PP commented Dec 12, 2023

I tried with the latest version of XrmToolBox: 1.2023.12.68
Plugin Registration version: 3.2023.12.3

The error persists:

image

Error Time: 2023-12-12 11:10:09.399
System.Reflection.ReflectionTypeLoadException
Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
mscorlib
at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
   at System.Reflection.RuntimeModule.GetTypes()
   at System.Reflection.Assembly.GetTypes()
   at System.ComponentModel.Composition.Hosting.AssemblyCatalog.get_InnerCatalog()
   at System.ComponentModel.Composition.Hosting.AssemblyCatalog.GetExports(ImportDefinition definition)
   at System.Linq.Enumerable.<SelectManyIterator>d__17`2.MoveNext()
   at System.ComponentModel.Composition.Hosting.CatalogExportProvider.InternalGetExportsCore(ImportDefinition definition, AtomicComposition atomicComposition)
   at System.ComponentModel.Composition.Hosting.ExportProvider.TryGetExportsCore(ImportDefinition definition, AtomicComposition atomicComposition, IEnumerable`1& exports)
   at System.ComponentModel.Composition.Hosting.ExportProvider.TryGetExports(ImportDefinition definition, AtomicComposition atomicComposition, IEnumerable`1& exports)
   at System.ComponentModel.Composition.Hosting.CatalogExportProvider.GetExportsCore(ImportDefinition definition, AtomicComposition atomicComposition)
   at System.ComponentModel.Composition.Hosting.ExportProvider.TryGetExportsCore(ImportDefinition definition, AtomicComposition atomicComposition, IEnumerable`1& exports)
   at System.ComponentModel.Composition.Hosting.ExportProvider.GetExports(ImportDefinition definition, AtomicComposition atomicComposition)
   at System.ComponentModel.Composition.Hosting.AggregateExportProvider.GetExportsCore(ImportDefinition definition, AtomicComposition atomicComposition)
   at System.ComponentModel.Composition.Hosting.ExportProvider.TryGetExportsCore(ImportDefinition definition, AtomicComposition atomicComposition, IEnumerable`1& exports)
   at System.ComponentModel.Composition.Hosting.CompositionContainer.GetExportsCore(ImportDefinition definition, AtomicComposition atomicComposition)
   at System.ComponentModel.Composition.Hosting.ExportProvider.TryGetExportsCore(ImportDefinition definition, AtomicComposition atomicComposition, IEnumerable`1& exports)
   at System.ComponentModel.Composition.Hosting.ExportProvider.GetExports(ImportDefinition definition, AtomicComposition atomicComposition)
   at System.ComponentModel.Composition.Hosting.ImportEngine.TryGetExports(ExportProvider provider, ComposablePart part, ImportDefinition definition, AtomicComposition atomicComposition)
   at System.ComponentModel.Composition.Hosting.ImportEngine.TrySatisfyImportSubset(PartManager partManager, IEnumerable`1 imports, AtomicComposition atomicComposition)
   at System.ComponentModel.Composition.Hosting.ImportEngine.TrySatisfyImportsStateMachine(PartManager partManager, ComposablePart part)
   at System.ComponentModel.Composition.Hosting.ImportEngine.TrySatisfyImports(PartManager partManager, ComposablePart part, Boolean shouldTrackImports)
   at System.ComponentModel.Composition.Hosting.ImportEngine.SatisfyImports(ComposablePart part)
   at System.ComponentModel.Composition.Hosting.CompositionServices.TryInvoke(Action action)
   at System.ComponentModel.Composition.Hosting.ComposablePartExportProvider.Compose(CompositionBatch batch)
   at XrmToolBox.PluginManagerExtended.LoadParts(Boolean isRetry)
   at XrmToolBox.PluginManagerExtended.LoadParts(Boolean isRetry)
   at XrmToolBox.PluginManagerExtended.RescanIfRequired()
   at XrmToolBox.PluginManagerExtended.Initialize(Form parentForm)
   at XrmToolBox.New.PluginsForm2..ctor()
   at XrmToolBox.New.NewForm..ctor(String[] args)
   at XrmToolBox.Program.Main(String[] args)

@davidmartiindale
Copy link

I resolved this issue by updating other plugin tools I use before installing, specifically Early Bound Generator & Plugin Trace Viewer

@mtnmuncher
Copy link
Author

I am already using the latest version of XrmToolBox: 1.2023.12.68

Since I am already using the latest Plug-in trace viewer and do not use Early Bound Generator, I don't understand how updating other plug-ins will resolve the issue.

If there are, in fact, prerequisite plug-ins, please provide the exact list. If not, please provide a link to download the 'previous' version of Plug-in Registration Tool.

@imranakram
Copy link
Collaborator

@mtnmuncher Previous versions are availeble on nuget.org here for instance https://www.nuget.org/packages/Xrm.Sdk.PluginRegistration/3.2023.11.1
It can be downloaded. Then you'd need to change the extension to .zip, unblock the assembly within an replace the old one at %appdata%\MscrmTools\XrmToolBox\Plugins

Strange that an update on Early Bound Generator and Plugin Trace Viewer solves this. These are not dependencies for PRT. It seems there is common dependency lying somewhere which is mismatching perhaps. @MscrmTools

@mtnmuncher
Copy link
Author

As per previous instructions, I downloaded 3.3023.11, and was able to successfully use this version from inside XTB.

Out of curiosity, I tried the following update path:

  1. Successfully updated to the 3.2023.12.2.
  2. After installing 3.2023.12.2, I was able to successfully update to 3.2023.12.3

Please try this approach and let me know if this works for others.

@devlinl
Copy link

devlinl commented Dec 12, 2023

As per previous instructions, I downloaded 3.3023.11, and was able to successfully use this version from inside XTB.

Out of curiosity, I tried the following update path:

  1. Successfully updated to the 3.2023.12.2.
  2. After installing 3.2023.12.2, I was able to successfully update to 3.2023.12.3

Please try this approach and let me know if this works for others.

This did not work for me... after installing 3.2023.12.2, when the toolbox reloaded, I got the same popup:

image

@mtnmuncher
Copy link
Author

Steps I performed

  1. installed Early Bound Generator (as well as V2) plug-ins. Even though I don't use these, someone mentioned they installed these to get stuff working.
  2. installed version 3.3023.11 of PRT
  3. I was able to update directly to version 3.2023.12.3 of PRT.

@devlinl
Copy link

devlinl commented Dec 12, 2023

Steps I performed

  1. installed Early Bound Generator (as well as V2) plug-ins. Even though I don't use these, someone mentioned they installed these to get stuff working.

Ah, I missed that bit from earlier... this got everything working for me.

@daryllabar
Copy link

@imranakram, the error is that the Microsoft.Bcl.AsyncInterfaces V6 assembly couldn't be found. The reason that installing the EBGV2 resolves this, is that the latest version of the XTB will search in the plugin sub-directories for any other dll that it needs, and it finds the EBGV2 version of the dll.

The solution is to either ILMerge this dll (yuck) or move away from that entirely to putting all dependent assemblies in the XTB\PLugins\PluginRegistration sub folder.

@YoYoFreakCJ
Copy link

YoYoFreakCJ commented Dec 14, 2023

As a temporary workaround you can download the Microsoft.Bcl.AsyncInterfaces.dll (for example from the official NuGet package, make sure to actually pick the version 6.0.0 and not the most recent version and extract the DLL from the lib folder in the package) and simply put it in the %AppData%\MscrmTools\XrmToolBox\Plugins folder along with all the plugins. This will allow the Plugin Registration Tool to run again.

imranakram added a commit that referenced this issue Dec 14, 2023
* EPPlus updated
* Adding assemblies in subfolder on nuget
* Removed `ILMerge` command
imranakram added a commit that referenced this issue Dec 15, 2023
…oft.Bcl.HashCode.dll` to nuget package (#135)

* Downgrading to `Microsoft.Bcl.AsyncInterfaces version=1.0.0`

* Added `Microsoft.Bcl.HashCode.dll` to nuget package
@imranakram
Copy link
Collaborator

This should be resolved now with version 3.2023.12.12

@imranakram
Copy link
Collaborator

Closing this now, feel free to reopen in case you encounter any relevant issues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants