HtmlAgilityPack - 文件未找到。

5

我正在SharePoint Foundation中开发一个C# ASP .NET WebPart。

一切正常,现在我想解析HTML页面以获取所有的图片路径并将图片保存在硬盘/临时文件夹中。

为此,我下载了HtmlAgilityPack最新版本,将其引用到项目中,一切看起来都很好,IntelliSense也正常工作。

但当我想要运行使用HtmlAgilityPack的部分时,我的浏览器显示了一个

FileNotFoundException - 找不到文件或程序集。

经过初步搜索后,我尝试包含v1.4.0的HtmlAgilityPack,因为我读到当前版本在某些情况下并不稳定。这也可以正常工作,直到我想使用HtmlAgilityPack时出现了同样的异常。

我还尝试将HtmlAgilityPack直接移动到解决方案目录中,但没有改变任何东西。

我尝试通过using插入HtmlAgilityPack,也尝试直接调用例如HtmlAgilityPack.HtmlDocument

结论:

  • 编译时没有出现错误,引用设置正确。

  • 当我使用ProcMon跟踪HtmlAgilityPack.dll时,路径被正确显示,但有时结果会显示“文件被只读锁定”,但我不知道这意味着什么或者它是否很重要。它可能与文件权限无关,因为如果我检查DLL,则所有权限都已给出。


1
你是否在不同的位置运行可执行文件,而不是构建项目的位置... 如果是这样,HTMLAgility Pack.dll 文件需要存在于根文件夹中。如果你没有这样做,请尝试将 .DLL 文件放在存储 exe 的 bin 文件夹中。 - Derek
2
尝试将HtmlAgilityPack引用的“复制本地”设置为“true”。 - Nasreddine
你使用的是哪个版本的Sharepoint?这听起来更像是一个Sharepoint问题,而不是HAP问题。 - David B Heise
@Derek - 正如我之前所写的,我尝试将dll文件直接移动到根目录,也尝试将其移动到bin文件夹中 - 但什么都没有发生。 - Janosch Geigowskoskilu
1
你尝试过将HtmlAgilityPack dll放到GAC中吗?如果您正在通过gacdeployment开关部署SharePoint解决方案来实现此功能,则工作进程不会从bin加载dll。 - robwilliams
显示剩余5条评论
1个回答

0

我使用了HTML Agility,这个组合对我来说完美地运作了。 请尝试检查以下并确认。

  • 下载的DLL版本应支持您的解决方案。
  • 确保将副本放置在GAC中。

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