每当我尝试调试我的项目时,我都会遇到这个问题:
这是法语,这是我的翻译:
“尝试运行项目时出错:加载程序集“DBZ buu 的 Fury 文本编辑器”或其依赖项之一失败。给定的程序集名称或代码库无效。(来自 HRESULT 的异常:0x80131047)
任何人都可以帮助我吗?
如果您Assembly.Load()
用于加载文件,请尝试更改它Assembly.LoadFile()
。
项目>项目属性>名称>从名称中删除撇号(“ '
”),它将起作用。
它可能不一定与我的情况有关......
首先,我想说这是一个非常困难的问题故障排除,因为可能有许多变量导致与程序集相关的实际问题。
因此,我正在开发针对 32 位版本 Office 的 Outlook 加载项 2010。一切正常,直到有一天突然出现,加载项不再加载,并且出现错误“ HRESULT:0x80131047 ”。搜索了将近半天,发现一篇不错的文章:
http://blogs.msdn.com/b/astebner/archive/2007/05/06/2457576.aspx
我尝试将程序集添加到全局缓存但无法。幸运的是,我有一个几乎相同的项目,它运行得很好,我已经进行了比较检查,一切看起来都一样,但是在这个过程中,我发现了一些不同的东西......因为它原来的平台目标 CPU 设置为64 位所以我把它改成了“任何”,瞧!- 这解决了它!
我有一个导致此问题的无效 .\Properties\licences.licx 文件。该文件由 DevExpress 组件自动生成。
我刚刚删除了这个文件,瞧:构建成功。
这个 MSDN 论坛帖子说您需要从程序集名称中取出“特殊”字符,例如斜杠、逗号或撇号,以避免该错误。
如果这不能解决它,另一个建议是取消选中“调试”选项卡中的“启用 Visual Studio 托管进程”。
我有一个导致此问题的无效 App.Config 文件。
不知何故,我错过了主要元素的最后一个结束标签。
</Configuration>
对于其他偶然发现本文并确定其命名约定是正确的并且他们正在使用 LoadFile 方法的人...
这是我想出的解决方案:
byte[] data = System.IO.File.ReadAllBytes(filename);
Assembly assembly = Assembly.Load(data);