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

VS2022 C#/WPF添加项目引用时未显示Microsoft.mshtml如何解决

VS2022 中找不到Microsoft.mshtml引用的排查与解决

核心排查方向

  • 先确认项目目标框架:Microsoft.mshtml最初是为.NET Framework设计的主互操作程序集(PIA),如果项目面向.NET Core 3.0+/.NET 5/6/7/8等新版框架,默认不会出现在Assemblies的Extensions标签列表中。
  • 检查VS2022组件安装情况:如果未安装对应版本的互操作组件、Office开发支持组件,Extensions列表不会加载该程序集。
  • 不要局限于Extensions标签:该程序集本质是COM组件的互操作包装,多数场景下不会归类到托管程序集的Extensions分类下。

分场景解决方案

场景1:项目面向.NET Framework

这是原指引对应的适用场景,操作步骤如下:

  • 打开「添加引用」窗口,跳过Assemblies下的Extensions标签,直接切换到左侧的COM分类页
  • 在COM组件列表中找到Microsoft HTML Object Library,勾选对应复选框
  • 点击「确定」,VS会自动生成所需的互操作包装引用,代码中直接使用using Microsoft.mshtml;即可正常调用

如果COM列表中找不到对应项,打开Visual Studio Installer,选择修改当前VS2022安装,在「单个组件」中勾选.NET Framework 4.x 开发工具下的主互操作程序集支持、*Microsoft Visual Studio Tools for Applications (VSTA)*组件,安装完成后重启VS即可。

场景2:项目面向.NET 5+/.NET Core

这类新版框架不支持直接加载全局程序集缓存中的旧版mshtml PIA,二选一操作即可:

  • 方式一:右键项目选择「管理NuGet程序包」,搜索安装官方兼容的Microsoft.mshtml包,安装完成后可直接使用对应命名空间。
  • 方式二:手动添加本地dll:在添加引用窗口点击底部「浏览」按钮,定位到本地的Microsoft.mshtml.dll文件(通常可在C:\Windows\assembly\GAC\Microsoft.mshtml\对应版本目录、或者Office安装目录的互操作文件夹中找到),选中添加即可。

注意:新版框架添加该引用后,需要在引用属性中将嵌入互操作类型设置为True,避免运行时出现程序集版本不匹配异常。

有效性验证

添加引用后,在代码中输入以下测试片段,若类型可正常识别、编译无报错即配置完成:

using Microsoft.mshtml;

public void MshtmlTest()
{
    HTMLDocument testDoc = null;
    // 可正常调用mshtml命名空间下的所有接口、类型
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 19:54:17