Upgrade to v9.11.0-rc2 may fail at GetReferencedAssemblyNames()
See original GitHub issueDescription of bug
Upgrade wizard doesn’t continue at 2nd step “Checking security aspects of this installation”. There’s an XHR to /Install/UpgradeWizard.aspx/GetSecurityTab which throws an exception:
IOException: Could not load assembly '..\bin\runtimes\win-x64\native\imageflow.dll' at DotNetNuke.Maintenance.Telerik.TelerikUtils.GetReferencedAssemblyNames(String assemblyFilePath, AppDomain domain)
The file path is correct, the file is there, but the DLL may not be readable by .NET. It seems to be a native (COM?) library from Imageflow.
Steps to reproduce
List the precise steps to reproduce the bug:
- Install DNN 9.6.0 with 2sxc 13 (or newer). It will place a DLL at \bin\runtimes\win-x64\native\imageflow.dll
- Unzip the DNN Upgrade Package
- Start the Upgrade Wizard
- Enter host login credentials
- Click Next
- It will stuck on the next step “Checking security aspects of this installation”
- Console will show the error details
Expected behavior
Skip non readable Assemblies/DLLs in the Telerik checks (AssemblyDependsOnTelerik()
) or inform the superuser which DLLs he should check/remove manually.
Error information
XHR to /Install/UpgradeWizard.aspx/GetSecurityTab
returns HTTP 500
System.IO.IOException: Could not load assembly '..\bin\runtimes\win-x64\native\imageflow.dll'
at DotNetNuke.Maintenance.Telerik.TelerikUtils.GetReferencedAssemblyNames(String assemblyFilePath, AppDomain domain)
at DotNetNuke.Maintenance.Telerik.TelerikUtils.AssemblyDependsOnTelerik(String path, AppDomain domain)
at System.Linq.Enumerable.WhereArrayIterator`1.MoveNext()
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at DotNetNuke.Maintenance.Telerik.TelerikUtils.GetAssembliesThatDependOnTelerik()
at DotNetNuke.Services.Install.UpgradeWizard.GetSecurityTab(Dictionary`2 accountInfo)
Affected version
- 09.11.00 release candidate 2
Affected browser
- Chrome
Issue Analytics
- State:
- Created a year ago
- Reactions:1
- Comments:5 (5 by maintainers)
I will work to get the fix in place for this. But the fix is that it is expected that you will not be able to load all assemblies, as some are native depending on what you have.
In my Telerik Identifier module I simply ignore these, as if I cannot load the assembly, it cannot have a Telerik dependency - https://github.com/IowaComputerGurus/DnnTelerikIdentifier/blob/c616cf6a423a6905e9d33e73ab3259bdfc129445/src/IowaComputerGurus.Dnn.TelerikIdentifier/Controllers/ContentController.cs#L43
Here is RC4 that should fix that. I’ll close this issue but feel free to comment if it’s still an issue with RC4 https://github.com/dnnsoftware/Dnn.Platform/releases/tag/v9.11.0-rc4