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

.NET 6项目调用Microsoft.Office.Interop.Excel加载失败求助

问题描述

基于.NET 6.0框架的项目,尝试使用Microsoft.Office.Interop.Excel运行本地.xlsm文件中的宏(Excel版本为Microsoft 365),在执行xlApp.Run("Main")时触发Cannot load file or assembly错误。已尝试两种引用方式:

  • 通过NuGet安装Microsoft.Office.Interop.Excel包(版本15.0.4795.1001)
  • 引用本地GAC中的对应DLL
    两种方式均出现相同错误。
可能的原因分析
  • Interop版本与Office 365不兼容:Office 365对应的主互操作程序集(PIA)版本为16.x,你使用的NuGet包是15.x(对应Office 2013),版本不匹配会导致运行时无法正确加载适配Office 365的程序集。即使引用GAC中的DLL,若GAC中只有15.x版本,同样会出现兼容问题。
  • 平台目标与Office架构不匹配:Office 365分为32位和64位版本,.NET 6项目默认平台目标为Any CPU,当程序运行时自动选择的架构与Office安装版本不一致时,会触发程序集加载失败。比如Office是64位,但项目运行在32位上下文,反之亦然。
  • .NET 6对COM互操作的特殊要求:.NET Core/.NET 5+与.NET Framework的COM互操作机制不同,默认可能缺少必要的配置。比如需要在项目文件中显式启用COM互操作支持,或者确保运行时能正确解析COM组件的注册表项。
  • 权限或进程冲突:运行程序的用户没有足够权限访问Office相关的系统文件,或者后台存在残留的Excel进程,导致新的Excel实例无法正常初始化,间接引发程序集加载错误。
  • 宏安全设置干扰:虽然错误提示是程序集加载,但Excel的高宏安全级别(比如禁用所有宏)可能在尝试执行Run方法时触发异常,被错误识别为程序集加载问题。可以暂时降低宏安全级别测试是否解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 10:01:41