我制作了一个非常简单的c#程序,用于测试不同用户对某些文件路径的访问。对于每个人来说,程序运行良好,但对于一个用户来说,程序返回异常
System.io.filenotfoundexception:由于以下错误,检索CLSID为{}的COM类工厂组件失败:80070002
并且当他尝试创建Microsoft.Office.Interop.Excel.Application对象时会发生这种情况。
using System;
using System.Runtime.InteropServices;
using Excel = Microsoft.Office.Interop.Excel;
using System.Windows.Forms;
using System.Diagnostics;
namespace TestExcelBianchi
{
class Program
{
static void Main(string[] args)
{
...
Excel.Application excel = new Excel.Application();
Excel.Workbook wb=null;
....
}
}
}
此问题是在用户电脑上运行Office修复后开始发生的,可能是缺少Office PIA。我需要在用户机器上重新安装office吗?或者有办法避免它吗?
您的机器似乎缺少所需的依赖项。尝试通过DependencyWalker(Dependency.exe(运行com组件,看看是否安装了所有必需的库。或者尝试在有问题的机器上修复/重新安装MS Office。
有关该问题的更多信息,请参阅C#中无法实例化COM组件-错误80070002。