You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Windows 11的Neovim中使用C# HtmlAgilityPack编译报错求助

解决Neovim中C#项目引用HtmlAgilityPack编译报错CS0246的问题

问题背景

Windows 11环境下用Neovim开发C#网页爬虫,尝试通过HtmlAgilityPack简化开发,但编译时持续报错:

error CS0246: the type or namespace name 'HtmlAgilityPack' could not be found (are you missing a using directive or an assembly reference?)

已尝试删除并重新添加包、终端重新编译、调整using语句位置,均无效;此前习惯用Visual Studio等IDE,首次用Neovim开发C#项目。

核心原因

手动复制.dll到bin目录并添加项目引用的方式,不符合dotnet CLI的依赖管理逻辑——VS会自动处理NuGet包的下载、引用和依赖链,但终端环境下需要通过dotnet CLI规范管理包,手动引用容易出现路径失效、依赖缺失等问题。

解决步骤

1. 清理无效的手动引用

打开SubstackFollowerTool.csproj,删除所有与HtmlAgilityPack相关的<Reference>节点,例如:

<Reference Include="HtmlAgilityPack">
  <HintPath>bin\HtmlAgilityPack.dll</HintPath>
</Reference>

2. 通过dotnet CLI添加NuGet包

打开终端,切换到项目根目录(与SubstackFollowerTool.csproj同级),执行命令:

dotnet add package HtmlAgilityPack

该命令会自动将包引用写入csproj文件,并处理依赖链。

3. 还原项目依赖

执行以下命令确保所有依赖包被正确下载到本地NuGet缓存:

dotnet restore

4. 确认using语句正确

在Program.cs中确保已添加命名空间引用,位置可以在文件顶部或命名空间内部:

// 方式1:文件顶部
using HtmlAgilityPack;

namespace SubstackFollowerTool
{
    class Program
    {
        // 代码逻辑
    }
}

// 方式2:命名空间内部
namespace SubstackFollowerTool
{
    using HtmlAgilityPack;

    class Program
    {
        // 代码逻辑
    }
}

5. 重新编译项目

使用dotnet CLI编译项目,而非直接调用csc命令(dotnet build会自动处理所有依赖引用):

dotnet build

如果使用解决方案文件,也可以编译整个解决方案:

dotnet build SubstackFollowerTool.sln

额外排查点

  • 检查csproj中的<TargetFramework>节点,确保目标框架(如net6.0、net7.0)与HtmlAgilityPack支持的版本兼容;
  • 不要手动向bin目录复制dll,dotnet build会自动将依赖包的dll复制到输出目录;
  • 确认项目已正确关联到解决方案文件,可通过dotnet sln list查看项目列表。

内容的提问来源于stack exchange,提问作者cpadg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 01:17:53