问题标签 [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 投票
1 回答
603 浏览

c# - 无法加载文件或程序集“xxxLib”或其依赖项之一。坏图像格式异常

从我在不同帖子中读到的内容来看,这是一个与 32 位和 64 位应用程序相关的错误。但是,我所有的项目都是用 x64 构建的。

在此处输入图像描述

xxxLib, 是最近更新为 64 位的三个项目正在使用的旧库。它工作正常。直到我将它添加到WebSite项目中。

这是当前的装配负载跟踪:

LOG:此绑定在默认加载上下文中开始。

LOG:使用应用程序配置文件:

C:\Users\LuisLavieri\Documents\Visual Studio 2013\Projects\Website\WebSite\web.config

LOG:使用主机配置文件:

C:\Users\LuisLavieri\Documents\IISExpress\config\aspnet.config

LOG:使用来自的机器配置文件

C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config。

LOG:此时未将策略应用于引用(私有、自定义、部分或基于位置的程序集绑定)。

日志:尝试下载新 URL

file:///C:/Users/LuisLavieri/AppData/Local/Temp/Temporary ASP.NET Files/root/8500ede2/8446907/xxxLib.DLL。

日志:尝试下载新 URL

file:///C:/Users/LuisLavieri/AppData/Local/Temp/Temporary ASP.NET Files/root/8500ede2/8446907/xxxLib/xxxLib.DLL。

日志:尝试下载新 URL

file:///C:/Users/LuisLavieri/Documents/Visual Studio 2013/Projects/WebSite/WebSite/bin/xxxLib.DLL。

ERR:无法完成程序集的设置(hr = 0x8007000b)。探测终止。

所以,如果我没记错的话,它似乎是在尝试将机器配置文件用于 32 位应用程序,对吧?

它出现在这一行:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config。

如果这是问题所在,我该如何指出使用 64 位的解决方案?

谢谢

0 投票
0 回答
45 浏览

.net - IIS7.5 应用程序错误

当我进入我的网站时收到此消息

空程序集简单名称。

说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.BadImageFormatException:空程序集简单名称。

源错误:

在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。

堆栈跟踪:

[BadImageFormatException:空程序集简单名称。]

[BadImageFormatException:无法加载文件或程序集“System.Web.Abstractions,版本=3.5.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。试图加载格式不正确的程序。]

System.Web.UI.ScriptManager.OnInit(EventArgs e) +0

System.Web.UI.Control.InitRecursive(控件命名容器)+333

System.Web.UI.Control.InitRecursive(控件命名容器)+210

System.Web.UI.Control.InitRecursive(控件命名容器)+210

System.Web.UI.Page.ProcessRequestMain(布尔 includeStagesBeforeAsyncPoint,布尔 includeStagesAfterAsyncPoint)+378

版本信息:Microsoft .NET Framework 版本:2.0.50727.5485;ASP.NET 版本:2.0.50727.5491

我有 2 台服务器,该站点在一台服务器上运行,但在另一台服务器上运行

请帮忙

0 投票
1 回答
598 浏览

listview - .resources 文件中序列化的类型与 .resources 文件所说的类型不同

我们已将一个大型项目从 .NET 3.5 升级到 .NET 4.0。一切正常,除了从 ListView 加载资源的错误。现在我们就在发布之前,这是一个非常严重的障碍。

这是 Microsoft 的一个已知问题,例如此处此处。此问题有一个修补程序,但我们尝试了所有可用的 .NET Framework 4.0 服务包,但没有任何效果。

We tried to install: KB2416472, KB2487367, KB2604121, KB2729449, KB2736428, KB2737019, KB2742595, KB2840628, KB2858302v2, KB2861188, KB2972106, KB2972215, KB2978125, KB2979575v2, KB3023221, KB3032662, KB3037578, KB3048074, KB3072309, KB3074547 - but without success.

修复程序应在 4.0.30319.461 (GDR) 中的 CLR 中。

我还尝试更改设计器位,以强制 Visual Studio 将其更改为 .NET 4 格式。它没有帮助。

解决此问题的唯一方法是安装 .NET Framework 4.5.2。但我们不想放弃对 Windows XP 的支持。

另一种解决方案是将所有此类用户控件的Localizable属性切换为 false。这对我来说似乎有很多工作,我们希望保持本地化。这足够了吗?我们无法在发布前的合理时间内测试所有控制和场景。

有什么真正的解决办法吗?是否有可用的服务包?

我不想相信 .NET Framework 4.0 不稳定。这个 Winform 控件是 .NET 中的一个基本功能!

0 投票
2 回答
1486 浏览

unit-testing - 所有单元测试都用 Moq 抛出 BadImageFormatException?

我目前正在增加我们软件产品的代码覆盖率并且遇到了问题;由于抛出“BadImageFormatException”,我的所有单元测试(使用“任何 CPU”编译时)都失败了。

可以通过使用“x86”而不是“任何 CPU”构建解决方案来规避此异常,但是要求是我们需要能够使用任何 CPU/x64 位运行它们。

所有涉及 Moq 的单元测试都遵循几乎相同的格式:

我可以确认这个测试在使用 x86 构建时是成功的。有没有人知道如何让 Moq 在使用“任何 CPU”构建时发挥出色?

顺便说一句,我还可以确认我在解决方案中的所有项目都是使用相同的值(“任何 CPU”)构建的。我正在使用 Moq v4.0。

编辑:这是完整的异常:测试方法 [ProductName 和调用的方法] 抛出异常:System.BadImageFormatException:无法加载文件或程序集'[产品名称],版本 = 1.0.0.0,文化 = 中性,PublicKeyToken = null'或其依赖项之一。试图加载格式不正确的程序。

0 投票
4 回答
2570 浏览

c# - TeamCity:GhostscriptSharp:试图加载格式不正确的程序。(来自 HRESULT 的异常:0x8007000B)

在 CI 上运行测试时 PDF 转换失败。我正在使用 GhostscriptsSharp 库进行转换。

在本地运行我的测试时我没有遇到这个问题,PDF 文件被正确转换为图像。

我一直在互联网上寻找解决方案,但到目前为止,我发现的每一件事都没有帮助我找到解决方案。

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

System.BadImageFormatException:试图加载格式不正确的程序。(HRESULT 异常:0x8007000B)在 GhostscriptSharp.GhostscriptWrapper.CreateAPIInstance(IntPtr& pintance, IntPtr caller_handle) 在 GhostscriptSharp.GhostscriptWrapper.CallAPI(String[] args) 在 GhostscriptSharp.GhostscriptWrapper.GeneratePageThumbs(String inputPath, String outputPath, Int32 firstPage, Int32 lastPage , Int32 宽度, Int32 高度) 在 Framework.Utils.FileUtils.ConvertPdfToImages(String pdfPath, String imagesPath, Int32 pageCount) 在 c:\TeamCity\buildAgent\work\8e7aa88e702dfaf7\Framework\Utils\FileUtils.cs:第 90 行在 StepDefinitions。 C 中的 General.Search.SearchTableSteps.ThenImagesAreCorrectInDownloadedDocumentFromSearchGrid(Table table):

0 投票
1 回答
1168 浏览

c# - AspNetCompiler - 试图加载格式不正确的程序

我正在构建一个仅限 64 位的 Web 应用程序(AssemblyA)并引用我构建的另一个应用程序,它也是仅限 64 位(AssemblyB)。

当我在 中添加AssemblyB为引用时AssemblyA,我在 Visual Studio 中收到以下编译错误:

ASPNETCOMPILER 无法加载文件或程序集“AssemblyB”或其依赖项之一。试图加载格式不正确的程序。

我的应用程序的两个平台目标设置都设置为x64,目标框架设置都是.Net Framework 4.6Prefer 32bit is unchecked

我尝试引用 in 的每个依赖引用AssemblyBAssemblyA确保所有依赖引用的版本相同。

我用过这个问题:如何确定 .NET 程序集是为 x86 还是 x64 构建的?确认所有引用的程序集都是MSILAMD64

我使用了启用aspnet_compiler.exe该选项的命令行工具errorstack并获得了以下堆栈跟踪:

[BadImageFormatException]:无法加载文件或程序集“AssemblyB”或其依赖项之一。试图加载格式不正确的程序。

在 System.Reflection.RuntimeAssembly._nLoad(AssemblyName 文件名,字符串 codeBase,证据 assemblySecurity,RuntimeAssembly locationHint,StackCrawlMark 和 stackMark,IntPtr pPrivHostBinder,布尔 throwOnFileNotFound,布尔 forIntrospection,布尔suppressSecurityChecks)

在 System.Reflection.RuntimeAssembly.nLoad(AssemblyName 文件名,字符串代码库,证据 assemblySecurity,RuntimeAssembly locationHint,StackCrawlMark& s tackMark,IntPtr pPrivHostBinder,布尔 throwOnFileNotFound,布尔 forIntros pction,布尔suppressSecurityChecks)

在 System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef,证据 assemblySecurity,RuntimeAssembly reqAssembly,StackCrawlMark &stackMark,IntPtr pPrivHostBinder,布尔 throwOnFileNotFound,布尔 forIntrospection,布尔suppressSecurityChecks)

在 System.Reflection.RuntimeAssembly.InternalLoad(字符串 assemblyString,证据 assemblySecurity,StackCrawlMark &stackMark,IntPtr pPrivHostBinder,Boolean forIntrospection)

在 System.Reflection.RuntimeAssembly.InternalLoad(字符串 assemblyString,证据 assemblySecurity,StackCrawlMark &stackMark,Boolean for Introspection)

在 System.Reflection.Assembly.Load(字符串 assemblyString)

在 System.Web.Configuration.CompilationSection.LoadAssemblyHelper(字符串 assemblyName,布尔星指令)

[ConfigurationErrorsException]:无法加载文件或程序集“AssemblyB”或其依赖项之一。试图加载格式不正确的程序。

在 System.Web.Configuration.CompilationSection.LoadAssemblyHelper(字符串 assemblyName,布尔星指令)

在 System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomain BinDirectory()

在 System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai)

在 System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig)

在 System.Web.Compilation.BuildManager.GetPreStartInitMethodsFromReferencedAssemblies()

在 System.Web.Compilation.BuildManager.CallPreStartInitMethods(字符串 preStart tInitListPath,布尔值& isRefAssemblyLoaded)

在 System.Web.Compilation.BuildManager.ExecutePreAppStart()

在 System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager、IApplicationHost appHost、IConfigMapPathFactory configMapPathFactory、HostingEnvironmentParameters hostingParameters、PolicyLevel policyLevel、异常 appDomainCreationException)

我查看了以下相关问题,但没有人回答这个问题。大多数与 IIS 配置有关,情况并非如此,因为这是编译错误,或者有解决方案将项目设置为允许 32 位平台目标,这不适合我的情况:

我不知道从这里去哪里。重申一下,我不想将我的任何一个项目设置为 32 位,这不是 IIS 配置的问题,因为这是一个编译错误。

我还在几台不同的机器和全新的应用程序上进行了尝试,结果相同。

如何修复此编译错误?

0 投票
0 回答
1670 浏览

c# - Oracle ODP.Net Oracle.DataAccess.dll 错误

我在 windows 7 64 位机器上安装了 Oracle 11.2.0.1 64 位版本。当我尝试通过 C# 控制台应用程序(VS2012)连接 Oracle DB 时,当我选择平台目标作为 AnyCPU/X64 时,它工作正常。如果我选择 X86 它会显示以下错误

无法加载文件或程序集 'Oracle.DataAccess, Version=2.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342' 或其依赖项之一。试图加载格式不正确的程序。

这是正确的,我已经安装了 X64 版本的 dll,当我尝试在 32 位模式下运行时它显示错误。

当我将我的数据层与我的业务层集成时,如果我选择 AnyCPU/X64 模式,它会显示错误。我该如何解决这个错误。

PS - 我只安装了oracle home。还没有安装客户端版本。

0 投票
1 回答
737 浏览

manifest - bin 中的非汇编 DLL

我们正在尝试使用 WebSupergoo 的 ABCpdf .NET v10。如果我们使用他们的安装程序,效果会很好。但是 v8 已经安装在服务器上,其他项目正在使用它,所以我们现在不想运行安装程序。(希望在不久的将来我们可以在不同的机器上测试安装和/或升级这些项目,但这个项目不能等待。)

WebSupergoo ( http://www.websupergoo.com/helppdfnet/default.htm?page=source%2F3-concepts%2F6-installation.htm ) 的“手动安装”说明指示放置 3 个主要 DLL (ABCpdf.dll 、ABCpdf10-32.dll 和 ABCpdf10-64.dll) 进入 bin 文件夹并添加对 ABCpdf.dll 的引用。

我们真的不希望它们在 bin 文件夹中,因为源代码管理设置为不从该文件夹添加任何内容。但是,为了让它工作(现在),它们被放置在该文件夹中。然后,当我尝试运行该项目时,出现以下错误(为安全起见更改了文件夹名称):

我们首选的方法是将它们放在“lib”文件夹中(目前在解决方案级别)。因此,我将 3 个 DLL 放在该文件夹中并添加了引用。该项目编译并运行,但是当我们尝试创建 PDF 时,我们收到以下错误:

WebSupergoo 支持说:“ABCpdf10-32.dll 不是程序集,所以它当然不包含程序集清单”。

我尝试将 ABCpdf10-32.dll 从 bin 文件夹中取出,但 ABCpdf10-64.dll 出现相同的错误。

我尝试在引用 False 时设置“复制本地”。没变。

复制本地:https ://msdn.microsoft.com/en-us/library/t1zz5y8c(v=vs.90).aspx

我尝试使用“探测”技术。我在项目的 web.config 和 app.config 文件中都尝试了它(解决方案似乎没有一个)。我还尝试将 lib 文件夹移动到项目本身中。没变。

探测:https ://msdn.microsoft.com/en-us/library/823z9h8w(v=vs.110).aspx

我不确定此时还可以尝试什么。任何帮助将不胜感激!

0 投票
4 回答
3876 浏览

c# - Service Fabric 无法加载程序集 c#

“无法加载文件或程序集‘Microsoft.ServiceFabric.Data’或其依赖项之一。试图加载格式不正确的程序。”

异常详细信息:System.BadImageFormatException:无法加载文件或程序集“Microsoft.ServiceFabric.Data”或其依赖项之一。试图加载格式不正确的程序。

我将 Service Fabric 的 nuget 添加到我的 web api 中,这是一个例外。我试图编译 x64 / AnyCPU / x86

有什么帮助吗?

0 投票
0 回答
810 浏览

c# - 当引用服务项目时,C# 控制器单元测试失败并出现错误的图像格式异常

当引用服务项目时,C# 控制器单元测试失败并出现以下错误的图像格式异常。服务和单元测试项目都被构建为AnyCpu.

有关如何解决此异常的任何建议?

测试方法 UnitTests.Controller.SomeControllerTests.SampleTest 抛出异常:

System.BadImageFormatException:无法加载文件或程序集 SampleService、Version=1.0.0.0、Culture=neutral、PublicKeyToken=null' 或其依赖项之一。试图加载格式不正确的程序。