【问题标题】:HtmlAgilityPack.HtmlDocument() cause errorHtmlAgilityPack.HtmlDocument() 导致错误
【发布时间】:2013-01-29 21:29:19
【问题描述】:

在我的应用程序中,我想使用使用 NuGet 安装的HTMLAgilityPack。但是当我尝试创建 HtmlAgilityPack.HtmlDocument 实例时,我得到了

HtmlDocument.cs 出现“找不到源”错误。

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();

Solution Explorer->References 确实包含 HtmlAgilityPack。怎么了?

【问题讨论】:

  • 你把它放在一个名为HtmlDocument的类中了吗?
  • 尝试再次卸载并安装 HtmlAgilityPack
  • @lazyberezovsky 没有任何变化。
  • @Oded,嗯。不,我在 'public partial class Form1 :Form' 中尝试这个 我应该创建名为 HtmlDocument 的特殊类吗?我是 C# 新手。
  • @Akki 不,你不应该。只需添加对 HtmlAgilityPack.dll 的引用即可。你能发布完整的异常堆栈跟踪吗?

标签: c# dll reference html-agility-pack


【解决方案1】:

当您的代码引发异常并且调试器尝试向您显示代码时,或者当您进入调用时,就会发生这种情况。

当你第一次取消“查找源”对话框时,Visual Studio 会将源文件路径添加到一个异常列表中,并且不会再询问你(这个列表在:解决方案资源管理器->右键单击解决方案- >Properties->Common Properties->Debug Source Files->不要寻找这些源文件)。

为了防止调试时出现“HtmlDocument.cs not found”页面,您需要跳过 (F10) HtmlAgilityPack 的调用,而不是单步执行 (F11)。

【讨论】:

    【解决方案2】:

    我可以通过调试 Windows 应用商店应用的代码来重现您的错误:

    picker.FileTypeFilter.Add(".htm");
    StorageFile file = await picker.PickSingleFileAsync();
    var accessStream = await file.OpenAsync(FileAccessMode.Read);
    
    var doc = new HtmlDocument();
    doc.Load(accessStream.AsStreamForRead());
    

    如果我在 HtmlDocument 的变量定义上设置断点,则会引发错误,因为将在不同的分区中查找 HtmlDocument.cs。如果我在最后一行之后设置断点,则不会发生错误。

    可能与异步编程有关...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-09
      • 2016-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多