最终用户无法创建excel互操作实例

我正在创建用于内部部署的wpf应用程序。

使用该软件的用户在尝试创建excel互操作实例时遇到以下错误。

Retrieving the COM class factory for component with CLSID (...) failed due to the following error: 80070002 The system cannot find the file specified

捕获错误的部分如下

try
{
    _excelApplication = new microsoft.Office.Interop.Excel.Application();
    GetWindowThreadProcessId(_excelApplication.Hwnd,out ExcelAppProcessId);
    _excelApplication.ScreenUpdating = false;
}
catch(Exception e)
{
    //TODO Move message box to parents
    MessageBox.Show($"Termination Error: Could not open Excel Application: {e.Message}");

    Environment.Exit(110);
}

以前,同一用户在尝试打开access时遇到问题(不记得确切的错误是什么),我实现了以下解决方案。

try
{
    //MessageBox.Show($"OS: {EnvironmentFunctions.is64BitOperatingSystem} Process: {EnvironmentFunctions.is64BitProcess}");

    if (EnvironmentFunctions.is64BitOperatingSystem && !EnvironmentFunctions.is64BitProcess)
    {
        string PathValue = "";
        string sAdd = "";
        string strCommonFiles =
            Environment.GetEnvironmentVariable("CommonProgramFiles(x86)");

        sAdd = ";" + strCommonFiles + "\\microsoft shared\\DAO";
        PathValue = Environment.GetEnvironmentVariable("Path");
        PathValue += sAdd;

        Environment.SetEnvironmentVariable("path",PathValue);

    }

    _accessApplication = new microsoft.Office.Interop.access.Application();
    GetWindowThreadProcessId(_accessApplication.hWndaccessApp(),out accessAppProcessId);
}
catch
{
    MessageBox.Show("Termination Error: Could not open access Application");
    Environment.Exit(110);
}

是否有类似的解决方案,但适用于Excel互操作?

关于用户的注释:它们是少数几个正在运行的Windows 7之一。

tinlud 回答:最终用户无法创建excel互操作实例

  

由于以下错误,检索具有CLSID(...)的组件的COM类工厂失败:80070002系统找不到指定的文件

通常,此错误仅由几个问题引起,我将在下面列出。

  1. 最近的Windows更新
  2. 分区问题的和或问题
  3. 位数问题(确定终端计算机上安装了什么Office以及针对应用程序进行了什么编译)

之前我问过您的目标是什么,因为您有一些代码正在检查PC是否为64位,并且您已经遇到了一些问题。然后,这导致我在创建Excel实例时遇到一些问题。

我对您的确切问题的建议和解决方案 是因为最终计算机是32位的,因此针对x86 / 32bit进行编译应该可以解决此问题。

最后一点,您也许可以删除旧代码,因为不再需要它。

本文链接:https://www.f2er.com/3142565.html

大家都在问