无法加载文件或程序集。无效指针 (来自 HRESULT: 0x80004003 (E_POINTER) 的异常)

30
我重新构建了我的解决方案并出现了以下的编译错误:
“错误 9 '无法加载文件或程序集 'ComponentArt.Web.UI, Version=2009.1.1819.35, Culture=neutral, PublicKeyToken=9bc9f846553156bb' 或其中一个依赖项。无效指针 (HRESULT 异常:0x80004003 (E_POINTER))' D:..\MyProj.Account\LC”
该dll文件在infra文件夹中,最终移动到了输出项目(网站)的bin文件夹中。
有什么好的想法吗?还应该检查什么?这个解决方案中的其他项目似乎都可以编译通过。
除非我很快得到这个错误。顺便问一下,“project”列下的LC是什么意思?

你正在使用哪个版本的.NET?机器上是否安装了Infragistics? - Brijesh Mishra
7个回答

24

我建议您检查 licenses.licx 文件,并确保其中指定的版本与您引用的 DLL 完全匹配。

由于类似的问题,我们通常会删除此文件中版本之后的所有内容。

LC 通常是指许可证编译器 lc.exe。


22

又是一个破损的引用导致了这个错误。


这对我有用。我使用Windiff比较了旧的和新的csproj文件,果然发现缺少了一个项目引用。 - live-love
16
最简单的方法是删除licenses.licx文件中的文本,然后重新构建项目/解决方案,以确定缺少哪些dll。 - Azadeh Khojandi
1
你的意思是什么? - Spyder
4
只是为了澄清@AzadehKhojandi的观点,问题标题中的错误消息出现在我这里,但它是一个误导 - 通过暂时删除licenses.licx文件中的文本并重新构建解决方案,编译器指向了一个缺失的引用,这才是真正的问题。我解决了那个引用问题,恢复了licenses.licx文件,然后就可以运行了。谢谢,这节省了我很多时间。 - aspirant_sensei

0

0

如果您在解决方案中卸载了任何项目(右键单击项目 -> 卸载项目),并忘记从现有项目中删除对已删除项目的引用,则可能会导致此错误。

您需要做的是检查解决方案中所有现有项目的引用,并确保没有标有感叹号的引用。(展开项目 -> 展开“引用”)。如果找到这样的引用,只需右键单击并将其删除即可。


0
确保项目路径中没有空格...
我使用的是Windows 10和Visual Studio Community 2019,我正在从GIT存储库克隆一个多项目解决方案。除了其他解决方案中的所有依赖项之外,我还遇到了一个找不到xyz.dll的元数据错误。由于继承自GIT,它的路径中有空格,例如C:/repos/我的项目名称/ ...。
我将其删除,再次克隆,并确保其路径中不包含空格,例如C:/repos/MY_PROJECT_NAME/ ...。
这解决了我的问题。

0
在我的情况下,发布配置文件是问题所在,我使用了“Release - Any CPU”发布配置来将项目发布到本地文件夹。使用这种方式,它没有加载“telerik.web.ui”程序集,但是在调试时,它完全正常工作。因此,我修改了发布配置为“Debug - Any CPU”,错误消失了。
PS:请记住,这将从您的“web.config”文件中获取“Debug”配置,该文件应为“web.debug.config”,如果您没有该文件,则会将“web.config”文件配置作为默认值。因此,请确保在将文件发布到实际环境时指向正确的配置。

0

在解决方案中检查每个依赖项目的目标框架,确保它们都是相同的。清理解决方案并重新构建。

这将解决此错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接