Welcome Guest Search | Active Topics | Sign In | Register

System.BadImageFormatException Options
Christian Porzio
Posted: Wednesday, October 18, 2023 4:18:08 PM
Rank: Advanced Member
Groups: Member

Joined: 10/4/2016
Posts: 104
I have an existing project which references EO.Base, EO.Web, EO.WebBrowser, EO.WebBrowser.Wpf, and EO.WebEngine, I am simply updating the DLLs to EO.23.2.48.0 from EO.20.2.90.0, but receive the error below when trying to build. What is the issue here? This same build command worked for EO.20.2.90.0 and the DLLs are referenced in the same way as before.

Note: This error is repeated for all referenced EO DLLs in the project.

Error:
2023-10-17T21:04:35.8337699Z Resolved file path is "F:\Agents\Workspace\A8\_work\1230\s\Web.EO\EO.23.2.48.0\EO.Web.dll".
2023-10-17T21:04:35.8338460Z Reference found at search path location "{HintPathFromItem}".
2023-10-17T21:04:35.8339033Z Primary reference "EO.WebBrowser".
2023-10-17T21:04:35.8347450Z ##[warning]F:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(2301,5): Warning MSB3246: Resolved file has a bad image, no metadata, or is otherwise inaccessible. System.BadImageFormatException: Could not load file or assembly 'EO.WebBrowser.dll' or one of its dependencies. An attempt was made to load a program with an incorrect format.
File name: 'EO.WebBrowser.dll' ---> System.BadImageFormatException: Could not load file or assembly 'EO.WebBrowser.dll' or one of its dependencies. An attempt was made to load a program with an incorrect format.
File name: 'EO.WebBrowser.dll'


at System.Reflection.AssemblyName.nGetFileInformation(String s)
at System.Reflection.AssemblyName.GetAssemblyName(String assemblyFile)
at Microsoft.Build.Shared.AssemblyNameExtension.GetAssemblyNameEx(String path)
at Microsoft.Build.Tasks.ResolveAssemblyReference.<>c.<Execute>b__255_3(String p)
at Microsoft.Build.Tasks.SystemState.GetAssemblyName(String path)
at Microsoft.Build.Tasks.ReferenceTable.SetPrimaryAssemblyReferenceItem(ITaskItem referenceAssemblyName)
eo_support
Posted: Thursday, October 19, 2023 12:58:59 PM
Rank: Administration
Groups: Administration

Joined: 5/27/2007
Posts: 24,217
Hi,

We are not aware of any corrupted DLLs in our public build. I would recommend you to create a separate clean test project and then reference those DLLs directly to see if that works. If that works but your doesn't, then it might have to do with file access/permission issue. If that does not work, then it probably means the DLLs are really corrupted. In that case we would recommend you to reinstall from our current version, refresh the DLLs and then try again.

Thanks!
Christian Porzio
Posted: Thursday, October 19, 2023 1:36:27 PM
Rank: Advanced Member
Groups: Member

Joined: 10/4/2016
Posts: 104
Hi,
Thank you for your reply. We are not suspected any corrupted DLL in this case. We are actually investigating a peculiar situation when we receive the above mentioned errors when building within our DevOps pipeline whereas it is compiling fine within the developer environment or was compiling fine with the previous DLL in that same DevOps environment - using the same pipeline pointing to the old DLL.
We upgraded to those later DLLs, made the few other changes required due to some signature changes. Is there any changes in the way those DLL were built between EO.20.2.90.0 and EO.23.2.48.0 that we should be aware? We really looking for hints and help to resolve that issue as we really want to move on to this latest updated.
eo_support
Posted: Thursday, October 19, 2023 4:56:32 PM
Rank: Administration
Groups: Administration

Joined: 5/27/2007
Posts: 24,217
No. We can't think of any signficant change in term of building process in between these two versions. The only big change is during the 2022 build cycle we brielfly removed support for .NET Framework 2.0 (DLLs are built using .NET Framework 4.6). However this change was reverted since the start of the 2023 build cycle so the current version is still build with .NET Framework 2.0. In another word, it's the same between v20 and v23.
Christian Porzio
Posted: Thursday, October 19, 2023 5:46:41 PM
Rank: Advanced Member
Groups: Member

Joined: 10/4/2016
Posts: 104
We suspect that there is something related to 32-bit/64-bit DLLs.
All the EO Dlls in EO.23.2.48.0 are of 32-bit version. Can we get a 64-bit version of the same dll's? Or even if you have any available in the higher versions?
eo_support
Posted: Thursday, October 19, 2023 9:33:34 PM
Rank: Administration
Groups: Administration

Joined: 5/27/2007
Posts: 24,217
No. It shouldn't have anything to do with 32 bit/64 bit. All our DLLs are built for AnyCPU. So regardless the bitness of your target system/build system, our DLLs will be loaded properly.

The difference between the 32 bit/64 bit version lies in the native code embedded inside our DLL. These native codes are dynamically loaded at runtime by our .NET code and our .NET code will throw an exception if you attempt to run the 64 bit version on a 32 bit system. However this is a runtime exception that occurs AFTER our DLLs have already been loaded. It is not a load time exception. The .NET part loads and runs on both 32 bit and 64 bit system.


You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.