问题标签 [badimageformatexception]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3839 浏览

asp.net-mvc - 64 位 ASP.NET MVC 应用程序无法运行

首先,我之前设法让我的一个 64 位测试 Web 应用程序在这台机器上运行(回到我为这个项目设计原型的时候)。我已经在 32 位上工作了几个星期,并意识到我需要将应用程序切换到 64 位,当我这样做(在项目中将目标平台设置为 x64)并重新部署时,它停止运行。

上次我花了几天的时间才让 64 位工作,我不确定这次我错过了什么,我上次做了什么。

我在 IIS 下发布和调试。

我收到带有以下消息的 BadImageFormatException:“无法加载文件或程序集 'GEMS.Web' 或其依赖项之一。尝试加载格式不正确的程序。”

此应用程序引用 64 位和 32 位程序集。我已在 IIS 的应用程序池中将“启用 32 位应用程序”设置为 true。

我正在使用 VS.NET 2012、IIS 7.5,在 64 位 Win 7 机器上运行。

以下来自程序集负载跟踪:

0 投票
4 回答
11738 浏览

reporting-services - 使用 32 位 Oracle 客户端的 SSRS 报告在 64 位环境中不工作

我在 BIDS 2008 中有一个使用 32 位 Oracle 客户端构建的 SSRS 报告,报告在 BIDS(VS 2008)中运行良好,但是当部署到 Win2k3 64 位服务器上的报告管理器时,它失败并出现以下错误

“尝试加载 Oracle 客户端库引发 BadImageFormatException。在安装了 32 位 Oracle 客户端组件的 64 位模式下运行时会出现此问题。”

我已经阅读了几篇建议使用csscript Enable32Biton64 'true'and启用 IIS 到 32 位的文章aspnet_regiis-i,但问题是我有其他需要 64 位功能的应用程序,所以不能这样做。

请建议我如何做到这一点.TIA。

0 投票
1 回答
1155 浏览

dll - 仅在一台用户的计算机上调用非托管 32 位 DLL 异常:BadImageFormatException(来自 HRESULT 的异常:0x8007000B)

我们的应用程序是 C# .Net 4 并调用非托管 32 位 DLL。它运行良好并且可以运行许多机器(主要是 64 位 Windows 7)。但是,我最近遇到了一个特定用户,一旦调用非托管 DLL,程序就会在其计算机上捕获 BadImageFormatException。

BadImageFormatException:试图加载格式不正确的程序。(来自 HRESULT 的异常:0x8007000B)

我做了以下事情:

  1. 确保安装和文件正确
  2. 尽可能将他的 .Net 运行时更新与工作机器匹配
  3. 确保所有项目的平台目标设置为 x86
  4. 运行调试版本,它可以工作

我快要完蛋了。有什么建议么?是否有特定的 .Net 4 更新或修补程序缺少导致此类问题的原因?

0 投票
2 回答
2685 浏览

wcf - 执行 WCF 服务应用程序时出现 WcfSvcHost BadImageFormatException

好的,我正在使用 WCF 构建客户端服务器应用程序,NetTcpBinding 由 WinForms 应用程序托管和使用。我在 Windows 7 Ultimate x64 中使用 VS.2012 Ultimate。

我可以启动托管服务的winform,我可以启动服务。现在,在客户端,我启动客户端应用程序并立即得到一个 Microsoft WCF 服务主机窗口,告诉我:

现在,客户端和服务器 WinForm 项目都有对定义服务(接口和实现类)的 X.Services.dll 的引用。那么,为什么服务器不抱怨呢?

此外,我已确保此解决方案中的所有项目都将其调试和发布配置设置为相同的 .NET Framework (4.5) 和相同的目标平台(x86 而不是任何 CPU)。

此外,唯一的外部程序集引用(实用程序库 DLL)也是使用相同的 VS 版本构建的,用于相同的框架 (4.5) 和相同的平台 (x86)。

那么这种糟糕的图像格式是从哪里来的呢?该解决方案有自己的外部库副本(以确保它具有正确的平台和框架配置)并且项目文件已被修改,以便它采用相应的发布/调试版本的外部程序集。

根据异常的提示,我使用 regedit 在 HKLM 中添加一个键以启用程序集加载/绑定日志记录并获得以下额外信息:

这对我来说没有任何用处...

0 投票
1 回答
3275 浏览

c# - 在某些计算机上加载 SQLite 时出现 BadImageFormatException

我在 .NET 4.0 中创建了一个非常简单的控制台应用程序,它将作为计划任务运行。它查找在一定时间内未修改的本地文件,然后解析文件,将记录插入 MySQL 数据库,并将文件复制到网络。我正在使用本地 SQLite 数据库来跟踪哪些文件已被处理,但不幸的是,在第一次 SQLite 操作时,我在一个系统上遇到了问题:

此异常在一个系统上引发(Windows 7 x64 Home Premium 和 .NET 4.0 完整版),但不会在其他两个系统上引发(开发系统 + 另一个,都是 Windows 7 x64 Professional 和 .NET 4.0 完整版)。

通过浏览其他问题,我发现当程序以 64 位模式运行时可能会发生这种情况,因为 SQLite DLL 是 32 位版本。我检查的第一件事是 Visual Studio 配置管理器中的活动平台是 x86。我还使用 IL DASM 来验证输出 exe 是否为 32 位(.corflags 0x00000003 // ILONLY 32BITREQUIRED)。我更愿意将 32 位 SQLite DLL 和目标平台保留为 x86,这样我就不必为 32 位和 64 位计算机制作不同版本的应用程序。

我还读到,由于 DLL 文件损坏,可能会发生此异常,但由于它适用于某些计算机,我认为情况并非如此。

我在问题系统上尝试过的其他没有帮助的事情:

  • 在 GAC 和 Windows 目录中搜索错误的 SQLite DLL,但没有找到。
  • 关闭 AVG 防病毒软件。
  • 直接运行 exe 而不是已发布的 ClickOnce 应用程序。
  • 卸载并重新安装 ClickOnce 应用程序。

任何建议将不胜感激 - 谢谢!

0 投票
1 回答
1545 浏览

servicestack - ServiceStack OrmLite Sqlite 异常

我有以下代码行:

我收到以下异常:

BadImageFormatException 试图加载格式不正确的程序。(来自 HRESULT 的异常:0x8007000B)

我认为这可能与 32 位和 64 位应用程序有关,所以我尝试了这两个版本的 dll。此外,我还通过 IIS 启用了 32 位应用程序。有人可以告诉我为什么我可能会收到此错误吗?

0 投票
1 回答
6478 浏览

c# - 运行应用程序时出现错误的图像格式异常

请阅读问题,它不会重复。

我有一个英特尔感知计算的 dll。他们提供了使用 dll 并且工作正常的演示控制台应用程序。

我试图在 Windows 应用程序中使用相同的 dll。一旦我创建类的对象,它就会抛出错误:

无法加载文件或程序集“libpxcclr,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null”或其依赖项之一。试图加载格式不正确的程序。

这里有什么问题我想不通。我在 x64 位机器上运行它。

感谢帮助。

0 投票
1 回答
563 浏览

.net - 启用应用程序框架时启动时出现 BadImageFormatException

我有一个多年来一直在开发的 .NET 应用程序(大约 15 个项目,其中一些非常大),并且在尝试启动它时遇到了以下异常。

System.BadImageFormatException 未处理消息:无法加载文件或程序集“System.Runtime.Remoting,版本=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”或其依赖项之一。试图加载格式不正确的程序。

似乎没有任何调用堆栈 - 这发生在启动我的代码之前,所以我什至无法介入。我在一些项目中使用了这个 DLL,但我现在已经完成并完全删除了对它的所有引用,但我仍然收到错误消息。这只发生在这个项目中(我可以在解决方案中启动其他项目,也可以从其他解决方案中启动其他项目)。

编辑

经过大量的摆弄,在我的项目下的应用程序选项卡中禁用应用程序框架似乎允许它启动,但我不知道为什么。我确实想在使用其中一些功能时重新启用它。

编辑 2 经过更多的混乱,我认为这是由应用程序框架使用远程处理来强制它是一个单实例应用程序引起的。但是,.NET 反射器似乎表明,如果我取消选中单实例选项,则实际上不应该运行它,但即使我这样做了,我仍然遇到问题。也就是说,它仍然属于使用该程序集(Microsoft.VisualBasic.ApplicationServices.ApplicationBase.Run)中的类型的方法的范围,所以我认为这就是导致它尝试解析该程序集的原因。虽然这一切都很有趣,但它并没有真正给出我为什么会得到这个例外的任何答案。我尝试用一​​个空项目复制它并且效果很好 - 两者都设置在相同的应用程序框架设置上,都在 .NET 4.0 上,都是 x86。我'

0 投票
1 回答
633 浏览

badimageformatexception - 安装 MSI 包会产生 BadImageFormatException

我有一个在 VS Professional 2010 (10.0.40219.1 SP1Rel)、.NET 4.5.50709 SP1Rel、Windows 7 中创建的 MSI 包 (x64) 它包含一个 Windows 服务、其他 dll 和第 3 方 dll。在我添加对在 VS2005 下编译的 x64.net(2.0) dll 的引用之前,它可以正常工作。我现在得到的错误是:

MSI (s) (74:A0) [12:23:10:931]:生成随机 cookie。MSI (s) (74:A0) [12:23:10:933]:使用 PID 13876 (0x3634) 创建了自定义操作服务器。MSI (s) (74:DC) [12:23:10:954]:作为服务运行。MSI (s) (74:DC) [12:23:10:955]:您好,我是您的 32 位 Elevated 自定义操作服务器。MSI (s) (74!E4) [12:38:33:692]: Creating MSIHANDLE (84) of type 790531 for thread 9444 DEBUG: Error 2835: The control ErrorIcon was not found on dialog ErrorDialog 安装程序遇到了意外安装此软件包时出错。这可能表明此软件包有问题。错误代码为 2835。参数为:ErrorIcon、ErrorDialog、错误 1001。错误 1001。初始化安装时发生异常:System.BadImageFormatException:无法加载文件或程序集 'file:///C:\Program Files\xyz \xyz 管理器\xyz.Service.exe' 或其依赖项之一。试图加载格式不正确的程序.. MSI (s) (74!E4) [12:39:24:631]: MSI (s) (74:38) [12:39:24:634 ]:线程 9444 MSI (s) (74:38) [12:39:24:634] 的类型为 790531 的 MSIHANDLE (84) 泄漏:注意:1:2769 2:_57DBC9CE_7D15_455B_8B30_5B2EB10DF0BB.install 3:1 调试:错误 2769:自定义操作 _57DBC9CE_7D15_455B_8B30_5B2EB10DF0BB.install 未关闭 1 MSIHANDLE。安装程序在安装此软件包时遇到意外错误。这可能表明此软件包有问题。错误代码为 2769。参数为:_57DBC9CE_7D15_455B_8B30_5B2EB10DF0BB.install, 1, CustomAction _57DBC9CE_7D15_455B_8B30_5B2EB10DF0BB.install 返回实际错误代码 1603(请注意,如果翻译发生在沙箱内,这可能不是 100% 准确)MSI (s) (7) (7 12:39:24:636]:为线程 12548 关闭类型为 790536 的 MSIHANDLE (83) 操作于 12:39:24 结束:InstallExecute。返回值 3. MSI (s) (74:04) [12:39:24:649]:用户策略值“DisableRollback”为 0 MSI (s) (74:04) [12:39:24:650]:机器策略值 'DisableRollback' 为 0 MSI (s) (74:04) [12:39:24:653]: 执行 op: Header(Signature=1397708873,Version=500,Timestamp=1118855907,LangId=1033,Platform= 589824,ScriptType=2,ScriptMajorVersion=21,ScriptMinorVersion=4,ScriptAttributes=1) MSI (s) (74:04) [12:39:24:653]: 执行操作: DialogInfo(Type=0,Argument=1033) MSI (s) (74:04) [12:39:24:654]:执行操作:DialogInfo(Type=1,Argument=xyz) MSI (s) (74:04) [12:39:24:654] : 执行操作: RollbackInfo(,RollbackAction=Rollback,RollbackDescription=回滚动作:,RollbackTemplate=[1],CleanupAction=RollbackCleanup, CleanupDescription=删除备份文件,CleanupTemplate=文件:[1]) 行动 12:39:24:回滚。回滚操作:回滚:_57DBC9CE_7D15_455B_8B30_5B2EB10DF0BB.install MSI (s) (74:04) [12:39:24:655]:执行操作:ActionStart(Name=_57DBC9CE_7D15_455B_8B30_5B2EB10DF0BB.install,,) MSI (s) (74:0 [12:39:24:656]:执行操作:ProductInfo(ProductKey={7C3F562E-7D0F-49B6-AFE1-7DD5C4EBD2C2},ProductName=xyz Manager,PackageName=Setup.msi,Language=1033,Version=33554432,Assignment= 1,ObsoleteArg=0,ProductIcon=_853F67D554F05449430E7E.exe,,PackageCode={DAA1A94E-2679-4076-A4CF-0F7B1E839A86},,,InstanceType=0,LUASetting=0,RemoteURTInstalls=0,ProductDeploymentFlags=3) Rollback: _A57B6B8D_EBFF_40E0_82DD_21B8F6E64792 MSI ( s) (74:04) [12:39:24:657]:执行操作:ActionStart(Name=_A57B6B8D_EBFF_40E0_82DD_21B8F6E64792,,) 回滚:_3CB427CA_9552_4B3E_9238_DC91BB0F603B.rollback MSI (s) (74:04) [12:39:24:658]: 执行操作: ActionStart(Name=_3CB427CA_9552_4B3E_9238_DC91BB0F603B.rollback,,) MSI (s) (74:04) [2:392: :659]: 执行操作: CustomActionRollback(Action=_3CB427CA_9552_4B3E_9238_DC91BB0F603B.rollback,ActionType=3329,Source=BinaryData,Target=ManagedInstall,CustomActionData=/installtype=notransaction /action=rollback /LogFile= "C:\Program Files\xyz\xyz Manager\xyz.Service.exe" "C:\Users\abc~1.STO\AppData\Local\Temp\CFG2C18.tmp") MSI (s) (74:04) [12:39:24:693]:为线程 12548 MSI (s) (74:C4) [12:39:24:693] 创建 790536 类型的 MSIHANDLE (85):调用远程自定义操作。DLL:C:\Windows\Installer\MSI29ED.tmp,入口点:ManagedInstall MSI (s) (74!88) [12:39:24:727]:为线程 12424 创建类型为 790531 的 MSIHANDLE (86) 调试:错误 2835:在对话框 ErrorDialog 上找不到控件 ErrorIcon 安装程序在安装此软件包时遇到意外错误。这可能表明此软件包有问题。错误代码为 2835。参数为:ErrorIcon、ErrorDialog、安装程序在安装此软件包时遇到意外错误。这可能表明此软件包有问题。错误代码为 2835。参数为:ErrorIcon、ErrorDialog、错误 1001。错误 1001。初始化安装时发生异常:System.BadImageFormatException:无法加载文件或程序集 'file:///C:\Program Files\xyz \xyz Manager\xyz.Service.exe' 或其依赖项之一。试图加载格式不正确的程序.. MSI (s) (74!88) [12:59:18:001]: MSI (s) (74:C4) [12:59:18:016 ]:线程 12424 MSI (s) (74:C4) [12:59:18:016] 的类型 790531 的 MSIHANDLE (86) 泄漏:注意:1:2769 2:_3CB427CA_9552_4B3E_9238_DC91BB0F603B.rollback 3:1 调试:错误 2769:自定义操作_3CB427CA_9552_4B3E_9238_DC91BB0F603B.rollback 没有关闭 1 个 MSIHANDLE。安装程序在安装此软件包时遇到意外错误。这可能表明此软件包有问题。错误代码为 2769。参数为:_3CB427CA_9552_4B3E_9238_DC91BB0F603B.rollback, 1, CustomAction _3CB427CA_9552_4B3E_9238_DC91BB0F603B.rollback 返回实际错误代码 1603,但由于继续标记 MSI (s) (718:C4:) [14:C4: :017]:为线程 12548 关闭 790536 类型的 MSIHANDLE (85) 回滚:_1D90AC8C_CBD2_432C_8C03_8E17E724219A _3CB427CA_9552_4B3E_9238_DC91BB0F603B.rollback 3:1 调试:错误 2769:自定义操作 _3CB427CA_9552_4B3E_9238_DC91BB0F603B.rollback 未关闭 1 个 MSIHANDLE。安装程序在安装此软件包时遇到意外错误。这可能表明此软件包有问题。错误代码为 2769。参数为:_3CB427CA_9552_4B3E_9238_DC91BB0F603B.rollback, 1, CustomAction _3CB427CA_9552_4B3E_9238_DC91BB0F603B.rollback 返回实际错误代码 1603,但由于继续标记 MSI (s) (718:C4:) [14:C4: :017]:为线程 12548 关闭 790536 类型的 MSIHANDLE (85) 回滚:_1D90AC8C_CBD2_432C_8C03_8E17E724219A _3CB427CA_9552_4B3E_9238_DC91BB0F603B.rollback 3:1 调试:错误 2769:自定义操作 _3CB427CA_9552_4B3E_9238_DC91BB0F603B.rollback 未关闭 1 个 MSIHANDLE。安装程序在安装此软件包时遇到意外错误。这可能表明此软件包有问题。错误代码为 2769。参数为:_3CB427CA_9552_4B3E_9238_DC91BB0F603B.rollback, 1, CustomAction _3CB427CA_9552_4B3E_9238_DC91BB0F603B.rollback 返回实际错误代码 1603,但由于继续标记 MSI (s) (718:C4:) [14:C4: :017]:为线程 12548 关闭 790536 类型的 MSIHANDLE (85) 回滚:_1D90AC8C_CBD2_432C_8C03_8E17E724219A 安装程序在安装此软件包时遇到意外错误。这可能表明此软件包有问题。错误代码为 2769。参数为:_3CB427CA_9552_4B3E_9238_DC91BB0F603B.rollback, 1, CustomAction _3CB427CA_9552_4B3E_9238_DC91BB0F603B.rollback 返回实际错误代码 1603,但由于继续标记 MSI (s) (718:C4:) [14:C4: :017]:为线程 12548 关闭 790536 类型的 MSIHANDLE (85) 回滚:_1D90AC8C_CBD2_432C_8C03_8E17E724219A 安装程序在安装此软件包时遇到意外错误。这可能表明此软件包有问题。错误代码为 2769。参数为:_3CB427CA_9552_4B3E_9238_DC91BB0F603B.rollback, 1, CustomAction _3CB427CA_9552_4B3E_9238_DC91BB0F603B.rollback 返回实际错误代码 1603,但由于继续标记 MSI (s) (718:C4:) [14:C4: :017]:为线程 12548 关闭 790536 类型的 MSIHANDLE (85) 回滚:_1D90AC8C_CBD2_432C_8C03_8E17E724219A

任何帮助表示赞赏。

0 投票
1 回答
1322 浏览

c# - 在 C# 中重置我的项目 .csproj 文件

我在 .net 4.0 中使用 c#。我的问题是如何重置我的项目设置。比如 csproj 文件,参考文件。为什么是因为我的项目找不到一些 dll(参考)。在以发布模式运行时,它工作正常。但调试模式无法正常运行。缺少我们在参考列表中添加的一些 dll 文件。那么有什么方法可以重置我的项目设置吗?请帮助我