我的WCF服务中出现以下运行时错误。
Could not load file or assembly 'MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
环顾四周之后,我发现了一个使用程序集绑定日志查看器或进程监视器的建议。两者都没有或都没有产生任何信息(即,日志查看器根本没有显示任何信息,流程查看器也没有看到正在尝试的程序集加载)。
最后,我遇到了一个建议,使用这个实用程序(依赖项walker)来找出程序集实际上在寻找什么。一开始,我就犯了一个错误;日志说明如下:
错误:找到具有不同CPU类型的模块。警告:未找到至少一个延迟加载依赖项模块。警告:由于延迟负载相关模块中缺少导出功能,至少有一个模块具有未解析的导入。
Error: Modules with different CPU types were found.
Warning: At least one delay-load dependency module was not found.
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.
根据模块列表,它找不到这些:
API-MS-WIN-CORE-COM-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL
API-MS-WIN-SHCORE-SCALING-L1-1-0.DLL
DCOMP.DLL
IESHIMS.DLL
其中一些看起来像是与RT框架相关的;然而,这个应用程序是在1997年开发的。NET 3.5(实际上,严格来说这不是真的——它是在4.5开发的,降级为3.5)。
查看其中一些文件似乎意味着它们是相当核心的Windows文件,奇怪的是,我在解决方案的其他地方使用了这个dll(当然是在客户机上),没有任何问题。
我正在使用VS2013,虽然我已经尝试了VS2012和得到同样的问题。
我确实遇到了这个问题,乍一看似乎是相同的,尽管它与C有关。
有谁能给我一些关于问题可能是什么或下一步尝试什么的指导吗?
这是我的融合日志:
=== Pre-bind state information ===
LOG: DisplayName = MyAssembly.MyLib.XmlSerializers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null, processorArchitecture=MSIL (Fully-specified)
LOG: Appbase = file:///c:/myprog/bin/Debug/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = myprog.exe
Calling assembly : System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: c:\myprog\bin\Debug\myprog.exe.config
LOG: Using host configuration file:
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
我设法减少了有问题的库,直到它只是一个返回字符串的静态函数,并且仍然得到错误。
如果您有多个项目,则在Visual Studio中运行应用程序时,其中一些项目可能没有生成。右键单击解决方案,然后转到属性、配置属性并确认所有项目都设置为编译。
带有WCF的Visual Studio有一个怪癖——如果您使用选定的平台构建,它会将程序集转储到特定于平台的文件夹中。如果你用“任何中央处理器”构建,它会把它放在你WCF的“宾”文件夹的根目录中。
当它配置IIS来帮助你的时候?它会自动假定程序集位于“宾”文件夹的根目录中。
净事件是,当您选择“x86”而不是“任何CPU”时,您最终将在错误的位置生成程序集,并且WCF突然无法运行。因此,这是少数几个无法加载文件或程序集的“一网打尽”错误说明了事实真相的情况之一—Visual Studio将程序集放在错误的位置,但现在找不到它。
我不知道他们为什么那样做。WCF有一些。。。有趣的设计决策。
总是帮助我解决这个错误的事情是仔细查看错误消息的一部分,其中说或它的一个依赖项。
我的配置如下: Apache Maven 3.3.3(7994120775791599e205a5524ec3e0dfe41d4a06;2015-04-22T14:57:37 03:00) 我使用Spring Tool Suite 3.7.1。发布(构建ID:201510041213)。 我做了关于Java、Maven和STS的所有设置,但是当我试图运行任何Maven命令时,STS会抛出这个异常,
我在创建工作JAR文件时遇到问题。我可以跑步。类文件如下所示: 但作为jar运行(在构建脚本中)失败: 我将通过使用简单的Hello World项目来简化我遇到的问题: 文件需要进入文件夹。JAR文件需要在文件夹中。是构建JAR文件的bash脚本。如下: 你好世界java: 运行JAR文件,如构建中所示。sh结果 如前所述,直接运行应用程序效果很好。 这是的结构。 的内容。 我已经工作了6年了,现
我修改了我的ASP。NET MVC4包,现在<code>System.Web.WebPages。Razor v3无法加载。有时其他包也不会加载。 我的同事运行解决方案没有任何麻烦,所以问题肯定是我的开发系统上的配置(与任何已签入的内容相反)。 我已经在各种SOF和其他论坛链接中尝试了这些建议,包括: < li >无法加载文件或程序集系统。Web .网页. Razor,版本=2.0.0.0, < l
这是我所做的编译: javac-cp“./javax.mail.jar”main.java 然后运行它: 这是我的完整代码: Edit:还尝试从父目录运行(其中包含my com文件夹和): java-cp“./javax.mail.jar;。Company.Main 但我明白了: 错误:找不到或加载main类Com.Company.main
我得到了新的笔记本电脑(Windows7),我正在尝试设置Maven。
我知道这是一个常见的问题,但我已经尝试了很多事情来使这起作用。 主类名:Test 我包含了带有属性的,如下所示: null 在我的部署简介中,我包括: lib目录 文件的组贡献者(,我正在使用的一个外部)的所有合并内容 注意:我使用的是JDeveloper12c IDE 无法运行jar文件:无法找到或加载主类Hello